- Updated: February 24, 2026
- 6 min read
Turn Your Kindle into a Live Bus‑Arrival E‑Ink Dashboard
You can turn an old Kindle into a live bus‑arrival display by jailbreaking the device, installing the KUAL launcher, configuring SSH, running a tiny PNG‑image server, and building a custom KUAL dashboard app.

Why hack a Kindle for real‑time bus times?
e‑ink readers are perfect for low‑power, always‑on information panels. By repurposing a discarded Kindle Touch (4th Gen) you get a cost‑effective, battery‑friendly screen that can show live transit data without the monthly fees of commercial solutions like TRMNL. This guide walks tech‑savvy developers through every step, from the initial jailbreak to a polished custom dashboard that updates every minute.
For the original project details, see the Kindle hack showcase. The following sections expand on each phase, add best‑practice tips, and show how UBOS tools can accelerate similar DIY projects.
1. Jailbreak your Kindle (the foundation)
The jailbreak unlocks the underlying Linux system, allowing you to install third‑party software. Follow these MECE steps:
- Identify your Kindle model and firmware version (e.g.,
5.13.6for Kindle Touch). - Download the matching
.tar.gzjailbreak package from the About UBOS knowledge base. - Connect the Kindle via USB, mount the
/mnt/uspartition, and extract the tarball. - Run the provided
install.shscript and reboot.
After reboot, you’ll see a new “KUAL” icon on the home screen, confirming the device is ready for custom extensions.
2. Install KUAL and MRPI (app launcher & package manager)
KUAL (Kindle Unified Application Launcher) provides a menu for launching custom scripts, while MRPI (Mobile Read‑Only Package Installer) lets you add extensions without rebuilding the firmware.
- Download the latest Telegram integration on UBOS package – it includes the MRPI binary.
- Copy the
kualfolder to/mnt/us/extensions/and set executable permissions. - Launch KUAL from the home screen and verify the “Extensions” menu appears.
- Disable OTA updates (Settings → Device → Automatic Updates) to prevent the jailbreak from being overwritten.
3. Configure SSH access (remote control)
SSH lets you push scripts, debug, and retrieve logs from the Kindle without a physical keyboard.
Install the OpenAI ChatGPT integration “USBNetwork” extension via MRPI, then run:
ssh root@192.168.1.100 -p 2222
# default password: kindle
Once connected, you can execute eips commands to display images and evtest to capture button presses.
4. Deploy a lightweight server that serves PNG bus‑arrival images
The Kindle can only render bitmap images, so we generate a 600×800 PNG every minute that contains the latest transit data.
4.1 Choose a hosting environment
For hobbyists, a $5 DigitalOcean droplet is sufficient. Install Docker and pull the Workflow automation studio image that contains wkhtmltoimage and curl.
4.2 Pull live bus data
Use the NJ Transit GraphQL endpoint (or any public API) to fetch arrival times. Example curl:
curl -X POST https://www.njtransit.com/api/graphql/graphql \
-H "Content-Type: application/json" \
-d '{"operationName":"BusArrivalsByStopID","variables":{"stopID":"12345"},"query":"query BusArrivalsByStopID($stopID: ID!) { getBusArrivalsByStopID(stopID: $stopID) { departingIn destination route time } }"}'
4.3 Convert HTML to PNG
Render a simple HTML template with the data, then run:
wkhtmltoimage --width 600 --height 800 --disable-smart-shrinking \
http://localhost:8080/bus.html /tmp/bus.png
Schedule the conversion with a cron job (`*/1 * * * *`) so the image updates every minute.
4.4 Serve the PNG
Expose the image via a static endpoint, e.g., https://mybusserver.com/bus.png. The Kindle will fetch this URL on each refresh.
5. Create a custom KUAL app to display the bus feed
The dashboard app ties together SSH, image fetching, and user interaction.
5.1 Directory layout
mybus/
├─ bin/
│ ├─ start.sh
│ └─ stop.sh
├─ menu.json
└─ config.xml
5.2 menu.json (KUAL menu definition)
{
"name": "Bus Dashboard",
"items": [
{ "label": "Start dashboard", "exec": "bin/start.sh" },
{ "label": "Stop dashboard", "exec": "bin/stop.sh" }
]
}
5.3 start.sh (core logic)
#!/bin/sh
DIR=/mnt/us/extensions/mybus
SCREEN_URL="https://mybusserver.com/bus.png"
WAKE_IN_SECONDS=60
refresh_screen() {
curl -s "$SCREEN_URL" -o "$DIR/screen.png"
eips -c
eips -g "$DIR/screen.png" -x 0 -y 30 -w gc16
eips 1 1 "$(date '+%Y-%m-%d %H:%M') - WiFi $(cat /sys/class/net/wlan0/operstate) - Battery $(gasgauge-info -c 2>/dev/null | tr -d '%')"
}
# Loop until the menu button is pressed
while true; do
refresh_screen
sleep 60
# Detect Home button press
if evtest /dev/input/event2 2>/dev/null | grep -q "code 102 (Home), value 1"; then
break
fi
done
# Clean up and return to UI
/bin/sh "$DIR/stop.sh"
5.4 stop.sh (exit routine)
#!/bin/sh
eips -c
killall -9 eips
/usr/bin/kual --restart
Place the mybus folder under /mnt/us/extensions/, restart KUAL, and you’ll see “Bus Dashboard” in the extensions list.
6. Benefits and practical use‑cases
Beyond displaying bus times, the same architecture can power a variety of e‑ink dashboards:
- Home automation status: Show temperature, humidity, and smart‑plug states using Chroma DB integration for fast vector look‑ups.
- Daily agenda: Pull events from Google Calendar via a server‑side script and render them as a clean agenda view.
- News ticker: Summarize headlines with the UBOS templates for quick start and push them to the Kindle every 15 minutes.
- Voice alerts: Pair the Kindle with ElevenLabs AI voice integration to read critical updates aloud via a Bluetooth speaker.
Because the Kindle consumes less than 0.5 W while displaying a static image, you can run it on a small solar panel for truly off‑grid operation.
7. Leverage UBOS to speed up future hacks
UBOS offers a full-stack platform that abstracts away server provisioning, API orchestration, and UI generation. For developers who love the Kindle hack but want to scale to multiple devices, consider these UBOS services:
- UBOS platform overview – unified dashboard for managing Docker containers, webhooks, and secrets.
- AI marketing agents – generate promotional copy for your hardware project automatically.
- UBOS partner program – get co‑marketing credits when you showcase a UBOS‑powered device.
- UBOS pricing plans – start free, then scale as your fleet grows.
Combine the Kindle’s e‑ink reliability with UBOS’s cloud automation, and you’ll have a production‑ready IoT solution in days, not weeks.
8. Ready‑made UBOS templates for similar projects
Explore these community‑contributed templates that can be cloned and adapted for your own e‑ink dashboards:
- AI SEO Analyzer – turn search‑engine data into a visual report.
- AI Article Copywriter – generate content for device‑based newsletters.
- AI Video Generator – create short video snippets that can be converted to GIFs for e‑ink.
- AI YouTube Comment Analysis tool – summarize sentiment and display key takeaways.
- AI Image Generator – produce custom icons for your dashboard.
Conclusion – Your Kindle, Your Data Canvas
By following the steps above, you transform a discarded Kindle into a reliable, always‑on bus‑arrival board that costs pennies to run. The process teaches valuable skills: Linux command‑line mastery, API integration, image rendering, and low‑power UI design. When you’re ready to expand, UBOS provides a seamless bridge from hobbyist prototype to scalable product.
Start your own e‑ink adventure today, and don’t forget to share your results on the UBOS portfolio examples page – the community loves fresh hacks!