Kobo E-INK Weather Dashboard

by debian7 in Circuits > Electronics

17 Views, 0 Favorites, 0 Comments

Kobo E-INK Weather Dashboard

PXL_20250914_134915883.jpg

Turn an old Kobo e-Reader into a 1.5-watts Linux server and always-on e-ink weather station.

Supplies

  1. A Kobo e-Reader device
  2. Disclaimer: This process modifies your Kobo firmware. Proceed at your own risk.
  3. This guide is based on Kobo Touch (N905) on latest firmware version 4.38.23429
  4. If your Kobo is a different model, please search internet and adjust accordingly
  5. USB cable that can connect to the Kobo device
  6. A server to run weather web server, could be a Raspberry Pi, or a cloud VM
  7. Basic knowledge about Linux (e.g., SSH, nano, docker, ...)

Install Nickel Menu

Nickel Menu is a Kobo customization that can be loaded when Kobo starts. It can allow customized menu items to launch various actions. For Kobo Touch, Nickel Menu can be installed directly. For some Kobo models, you may need to install KoboPatch first (kobopatch - An improved patching system - MobileRead Forums)

  1. Download the latest KoboRoot.tgz from the Nickel Menu releases page.
  2. Connect the Kobo Touch to PC via USB.
  3. Copy KoboRoot.tgz into the .kobo folder.
  4. Safely eject the device.
  5. The Kobo will reboot and install Nickel Menu automatically.

✅ At this point, Nickel Menu is active (accessible via the Nickel Menu on the home screen).

Install FBInk

FBInk allows scripts to print text or display images on the Kobo screen.

  1. Download the `fbink` binary from the [FBInk discussion page](https://www.mobileread.com/forums/showthread.php?t=299110).
  2. Connect the Kobo Touch to PC via USB.
  3. Copy `KoboRoot.tgz` into the `.kobo` folder.
  4. Safely eject the device.
  5. The Kobo will reboot and install FBInk automatically.


Setup Weather Web Server

In order to turn Kobo into a weather station, a web server is needed to use APIs from weather providers, and render it into a Kobo screen sized picture. Then the script running on the Kobo device can fetch the picture periodically and display on Kobo.

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.

  1. Get the following information: Weather providers API Keys (NWS or Tomorrow.io)
  2. An example script to run the image can be found here: Run weather web server container
  3. 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)
  4. With the container image, you can provide quotes to display (mine example shown is jokes, but you can use, e.g., quotes of the day)

Copy Weather Station Script Files

  1. Download the files in this repo: https://github.com/gadget1999/Kobo-Weather-Station
  2. Connect the Kobo Touch to PC via USB.
  3. Copy the folders under Kobo\mnt\onboard\.adds (nm and bin) into the .adds folder.
  4. Update the file Kobo\mnt\onboard\.adds\bin\.env, change KINDLE_WEATHER_URL value to your web server and GPS coordinates above
  5. Safely eject the device.

Now there will be 2 menu entries in Nickel Menu: Start Weather and Start Telnet

Start Weather Station

Select Start Weather in Nickel Menu, this will start the weather station.

A few notes about the weather script:

  1. It uses /tmp tmpfs to keep the updated PNG files, to avoid wearing out the internal storage
  2. It will also disable Kobo native UI so that screen is not overwritten by native UI periodically. Another important reason is that the native UI aggressively disconnects WiFi, so weather background updates will fail over time if it were not disabled.
  3. If you need to switch back to native Kobo UI later, just use the power button to turn off the device and start again.