Kindle E-INK Weather Dashboard
by debian7 in Circuits > Electronics
242 Views, 1 Favorites, 0 Comments
Kindle E-INK Weather Dashboard
Turn an old Kindle into a 1-watt Linux server and always-on e-ink weather station.
Supplies
- A Kindle device capable of jailbreaking
- Disclaimer: This process modifies your Kindle firmware. Proceed at your own risk.
- This guide is based on Kindle Touch on firmware version 5.3.7.3, and the tools can be found here: https://www.mobileread.com/forums/showthread.php?t=225030
- If your Kindle is a different model or firmware version, please adjust accordingly
- Note: not all Kindle models or firmware versions can be jailbroken
- USB cable that can connect to the Kindle device
- A server to run weather web server, could be a Raspberry Pi, or a cloud VM
- Basic knowledge about Linux (e.g., SSH, nano, docker, ...)
Jailbreak Kindle
Jailbreak Kindle Touch:
- Download Jailbreak package: kindle-jailbreak-1.16.N-r19426.tar.xz
- Unzip the package, and find a file called kindle-5.4-jailbreak.zip
- Unzip this ZIP, and copy all its content to the Kindle root folder (see picture)
- Eject Kindle from PC, go to Settings → Menu → Update Your Kindle.
- If succeeds, this will jailbreak the Kindle Touch (screen will show indicator that it's jailbroken)
Install Jailbreak Hotfix
Install Kindle Jailbreak Hotfix:
- Download Jailbreak Hotfix package: JailBreak-1.16.N-FW-5.x-hotfix.zip
- Unzip and copy the hotfix Update_jailbreak_hotfix_1.16.N_install.bin file to the Kindle root folder
- Eject Kindle from PC, go to Settings → Menu → Update Your Kindle. This will install the jailbreak hotfix.
Install Developer Certificates
Install developer certificates so that custom packages can run:
- Search internet for this package: DevCerts-20250419-KeyStore.zip
- Unzip the package and find the .bin file for your Kindle model. For Kindle Touch, it's: Update_mkk-20250419-k5-ALL_keystore-install.bin (see picture)
- Copy the BIN file to the Kindle root folder
- Eject Kindle from PC, go to Settings → Menu → Update Your Kindle. This will install the DEV certificates.
Install KUAL (Launcher)
Install KUAL (Kindle Unified Application Launcher, the control panel for custom extensions) launcher to make future steps easier:
- On the download list page of step 1, find the KUAL packge: KUAL-v2.7.37-gfcb45b5-20250419.tar.xz
- KUAL (Kindle Unified Application Launcher) is the control panel for custom extensions.
- Copy KUAL-KDK-2.0.azw2 to your Kindle documents folder.
- Eject Kindle, on Kindle home screen, find the book named KUAL, open it to launch.
Install MrInstaller
Install MrInstaller, a package installer for custom packages:
- Find package for MrInstaller: kual-mrinstaller-1.7.N-r19303.tar
- Unzip the package, and copy the extensions and mrpackages folders to the Kindle root
- Eject Kindle, launch KUAL → Helper → MR Installer to manage future packages
Install USBNetwork (for SSH Access)
Install USBNetwork to enable SSH so that can connect and manage the Kindle backend:
- Find package for USBNet: kindle-usbnet-0.22.N-r19297.tar.xz
- Unzip the package and copy Update_usbnet_0.22.N_install_touch_pw.bin into the mrpackages folder on Kindle.
- Eject Kindle, open KUAL → Helper → MR Installer → install USBNet.
- After installation, go to KUAL → USBNet:
- Enable WiFi SSH at boot.
- Disable USB SSH (optional).
Setup Weather Web Server
In order to turn Kindle into a weather station, a web server is needed to use APIs from weather providers, and render it into a Kindle screen sized picture. Then the script running on the Kindle device can fetch the picture periodically and display on Kindle.
For this purpose, we can use a docker image on a Raspberry Pi, local server or cloud VM (if cloud VM is used, it's recommended to enable firewall to only allow connection from your public IP).
The docker image to be used is: https://hub.docker.com/r/gadget1999/rpi-nook-weather.
- Get the following information: Weather providers API Keys (NWS or Tomorrow.io)
- An example script to run the image can be found here: Run weather web server container
- Once the web server is running, you can use this URL to get the weather info in 600x800 PNG: https://yourserver/kindle_image?gps_coordinates=39.7128,-76.0060 (replace with your own GPS coordinates)
- With the container image, you can provide quotes to display (mine example shown is IMDB good movies, but you can use, e.g., quotes of the day)
Connect to Kindle (SSH)
Connect to the Kindle via SSH (replace with Kindle’s IP):
- ssh root@192.168.x.x (or use SSH tools like Putty), then change root password
- passwd
- (optionally, use certificate to log into SSH) On first connection, create an authorized keys file:
- mkdir -p /mnt/us/usbnet/etc
- nano /mnt/us/usbnet/etc/authorized_keys
- Paste your public SSH key, save, and exit.
- Reboot the Kindle to apply changes.
Install Weather Display Script
Now with SSH session, you can set up a background job that displays weather images.
- Make system partition writable:
- mntroot rw
- Copy /etc/upstart/startup.conf (download here: startup.conf)
- Make system partition read-only again:
- mntroot ro
- Copy weather script to /mnt/us/local/bin, and make it executable (download here: weather)
- update the KINDLE_WEATHER_URL to your web server URL from step #7 above
- https://yourserver/kindle_image?gps_coordinates=39.7128,-76.0060 (replace with your GPS coordinates)
- chmod +x /mnt/us/local/bin/weather
- A few notes about the weather script:
- It uses /tmp tmpfs to keep the updated PNG files, to avoid wearing out the internal storage
- It will also disable Kindle native UI so that status bar is not displayed. (this also reduce memory usage from about 150MB to 40MB)
- You can create a file called 'disable-weather' on Kindle root folder to switch back to regular Kindle UI
Reboot the Kindle—your weather image will now refresh every 20 minutes.