I took an even simpler route. After jailbreak and ssh I just made two scripts on the Kindle, one is triggered every minute, the other every half hour. Both draw the same image from the same location, the 30 minute one just adds a full refresh. This way the display is not fully refreshed every minute, but in time image is degrading so full refresh once every 30 minutes seems work out fine.
This way Kindle has a very simple job, no apps installed no anything, just two extra cronjobs to run the oneliner bash scripts that draw the image. And I use rsync from a raspberry pi to push a new image every minute. That image is assembled with a python script, rpi side, with air quality data. Connects to local mysql server, pulls the values and then assembles it.
Nice!
Here's my version of a kindle dashboard I set up several months ago (https://github.com/thekakkun/kiiin). I use it to show local weather data and music data from my media server.
As for the "color bleed" (I assume it's ghosting) you mention, periodically using `eips -f` when drawing the image to force a full screen redraw should help.
Kindles are fun devices to hack and play with. I can grab an old kindle for €15-20 on eBay.
I did the same last year and had lots of fun in the process.
Old kindles are a lot of fun. I've turned a couple of them into AI generated paintings that refresh their contents every few hours or so. I can control the prompts via web-ui, through template functions they can include things like weather conditions, random animals, countries, current date & time and even titles of random news articles. Prompt handling and image generation is done completely locally on my home server, using ollama and stable-diffusion-webui.
The only problem I've had is that most news articles from mainstream media are damn depressing, so generating paintings directly from them gets gloomy quick. I had to instruct ollama to try put a positive spin on negative articles. I do love my weather-forecast painting though. Whenever it's raining outside, the painting has rain in it too (or now during winter it's all snowy).
Battery life is really good too, lasts several weeks. I used existing "Online Screensaver extension" from MobileRead forums, with some customizations. It automatically turns on airplane mode after fetching the image and keeps it on until next fetch, which probably explains the improved battery life.
In Queensland, Australia we have solar powered e-paper displays [1][2] at some bus stops that are very similar to this (much bigger than a kindle screen, though).
[1] https://translink.com.au/about-translink/projects-and-initia...
[2] https://www.facebook.com/TranslinkQLD/videos/e-paper-trial-h...
Very nice post! This is finally news for hackers again.
Everybody seems to do stuff like this nowadays. Myslef included. I did have old K4NT lying around and started playing with it. With a little bit of help of AI (not for jailbreaking though! - lots of nonsense) I was able to put up little server, which now serves family calnedar agenda, but it is designed to be modular and I will put more stuff to it later. I've even designed and 3D printed insert into Ikea 12x18 frame and put a small "blade" powerbank with MagSafe to the back, so now I need to push powerbank button every 5 days. Internal battery is in a bad shape now, but I saw I can still buy an replacement. Wired version was not an option in my case.
Real nice! Shutting down networking between refreshes definitely helps with the battery life. I also prevent mine [1] from updating between 10PM and 6AM. Nobody is looking at it anyway. If you search around on Github for Kindle dashboards, there's a lot of scripts out there with a bunch of battery life improvements (shutting down daemons, wifi etc.).
I built GTFS based public transit display on top of a Raspberry Pi Zero and a 2" e-ink display ~10 years ago [2].
[1] https://franz.hamburg/writing/kindling-e-ink-dashboard.html
I love using Kindle's as single purpose tablet/interfaces/displays. I'm the weirdo who actually prefers the LCD displays vs eInk and it's incredibly easy to set Kindle Fire's into dev mode which lets you display a webpage, never turn off while connected to power and never show ads.
You can regularly find the Kindle Fire HD10s for ~$40
A while ago I've rewritten TRMNL's Kindle-client from Bash into Lua, optimised it a bit and when doing a refresh every 5 minutes, my Kindle Paperwhite 10th gen now lasts about 5-6 days on a charge.
I was glad to see the note about battery life down at the bottom. My biggest challenge with the old Kindles I have laying around is that most of them won't hold a charge!
These days digital shelf labels look like a really cheap option; lots of them look like they require a proprietary base station, but there are some out there with BLE/NFC - have been meaning to get one to try.
Of course, if you have an old kindle about, reusing it is a great way to avoid waste.
This is the kind of project that makes me want to raid the drawer of old electronics. The power consumption breakdown from hex4def6 is really valuable context too - wifi being the dominant power draw explains why so many of these e-ink dashboard projects end up with a Pi doing the heavy lifting over USB.
I've been thinking about similar setups for kitchen recipe displays. E-ink is perfect for anything you glance at - no backlight burning your eyes at 6am, and the always-on nature means you don't have to wake up a screen. The trade-off of slow refresh is actually a feature when your data only changes every few minutes.
This is great! I love seeing e-ink/Kindle related displays. I thought I saw a HN article about it 'awhile ago', turns out, time flies, that was back in 2024!
This is the link: https://lilymara.xyz/posts/2024/01/transit-kindle/ from https://news.ycombinator.com/item?id=41923753
The author went from rendering a pixel-perfect image on Kindle to building a separate HTTP server to do it in rust!
Yes! I want this so bad. But for the weather or my calendar for the day.
I took an even simpler route:
I rebuilt the OneBusAway iOS app from scratch as a pair of Swift frameworks that will work anywhere, including tvOS[1].
Then, I started a new project to rebuild the OneBusAway server in Golang from scratch[2].
Then, I got an intern to build a suite of fantastic SDKs on top of Stainless[3].
Finally, I got Google to pay for an intern last summer to build a sign mode UI in SvelteKit that will work in any browser[4].
Easy!
But seriously though, if your transit agency isn't so cool that they provide GraphQL endpoints to query transit information, I think you'll find that the OneBusAway Maglev server is an incredibly easy way to consume your transit agency's scheduled and realtime data, and that our SDKs and apps are a fantastic way to visualize all of that information.
We're always looking for software developers to help out with our projects, as well as folks in disciplines ranging from user experience and product management, to biz dev and marketing, to volunteer some time to help our underfunded open source projects succeed. Feel free to reach out to me at [email protected] if that sounds interesting to you. Our software is used by millions of people every day in cities all around the world, including Seattle and New York City.
----
[1] https://github.com/oneBusAway/onebusaway-ios/
[2] https://github.com/OneBusAway/maglev
[3] https://developer.onebusaway.org/api/sdk and Stainless (which is a really terrific product) is at https://www.stainless.com
would a barebones html page showing the bus timings and refreshing automatically every couple of minutes work?
Or is there a javascript restriction on kindle?
I made something like this! Except I have it plugged into an outlet in the kitchen, so no battery to deal with. It's a little hacky but it works for me.
If they ever reboot that Twilight Zone where Burgess Meredith breaks his glasses they should do someone who did this to their kindle.
Makes me wonder why there isn't a whole category of "public display-friendly" e-ink devices with first-class APIs...
Regardless of anything else, I thought we were done messing with the cursor on websites.
I don’t use public transportation but don’t the bus stops have these signs already? I remember seeing them.
In case anyone wants Todoist + Gcal events on the kindle, I coded a simple web app for that some years ago:
https://github.com/rga5321/productivity-dashboard
I am not using it anymore as I bought a TRMNL display and set up a simple template to do the same, but it worked well for me.
Why Jailbreak the Kindle when you can just open its browser and visit a website that shows the arrival times?
The Kindle browser is surprisingly decent, I made Claude Code generate an RSS feed reader compatible with the Kindle browser, with the ability to read full articles (for those feeds that require you to visit the website), and download articles. It also supports Reddit and Google News RSS feed. This is my new favorite way of browsing the internet.
Very cool
awesome
Did you hammer nails straight into a wall like a barbarian?!
A little bit of a hijack, but it's hard to find a more relevant time to post this.
For a defunct startup, I built this exact thing as a product for coffee shops:
cafetren.com.ar
https://cafetren-com-ar.translate.goog/?_x_tr_sl=auto&_x_tr_... (translated from spanish):
As someone who worked on kindle power consumption many years ago: One of the (by far) biggest consumers of power is the WiFi connection. It has to wake up and respond to the AP in order to not get disconnected every x seconds.
Off the top of my head, I think 'on' average power consumption was ~700uA without wifi, and about 1.5mA+/- with Wifi. This is from over a decade ago, so my memory is fuzzy though...
Obviously, page changes used relatively large amounts of power. I don't recall the exact amounts, but it was 100s of mA for seconds.
There is also an "every x pages, do a full screen refresh (black to white)" to fix up the ghosting issue that the article writer saw.