There's a lot of low-hanging fruit there. Particularly because the device has a USB port and, by design, exposes a user partition that you can read/write to (so you can upload files and documents and ebooks to the device).
There's definitely been an effort by Amazon to lock them down, but just taking your reverse-engineering tool of choice and decompiling their firmware binary will give you tons of readable code to dig through. They use a mix of java, native c, and javascript.
Fun fact, at startup the Kindle looks for certain files in the user partition, with certain naming patterns. You can, for example, disable the screensaver by dropping a file with a special name there. They patched this once, but after doing a grep for the user-partition mount location (to see all the places in their code where they read from user partition files) I was pretty quickly able to find another way to do this. It's fun stuff.
Here's my weather E-Ink board (which consistently gives a faster result than waiting for the iOS weather app to fetch & render): https://github.com/OmerShapira/theres-some-weather-outside
It worked way better than I thought it would and is a pretty decent size.
Little pricey.
[1] https://www.youtube.com/watch?v=-ZXrJRpA0Jw
[2] https://www.amazon.com/DASUNG-Paper-Monitor-Knight-Version/d...
1. His project does allow rendering any HTML: https://www.invisible-computers.com/programmable-e-paper-scr...
2. It is in stock. :) Raspberry Pi Zero 2 and the waveshare displays are in a bit of a stock crunch, and the frame I ended up mounting this in, along with the special flat USB cable, pushed the project cost to the same price. It's my own aEsTheTic tho.
I am here to answer any questions anyone might have.
There are some more pictures on the shop page here: https://shop.invisible-computers.com/products/invisible-cale...
Is it something that you plan on doing and document? Or is there an easy way I can ssh into the device and figure out on my own?
TIA!
EDIT : well, 1 minute later you answered part of my question here : https://news.ycombinator.com/item?id=37645339. How about ssh-ing?
For scrolling, I am not quite sure what you mean - are you referring to a button that would allow to move the time forward on the calendar? (That doesn't exist yet)
One thing I will point out from observation, the radios on ereader devices aren't great for heavy use; they were originally created for occasional syncing. Projects like these will require an HTTP request to somewhere to fetch data, on a regular basis, and the radio eventually stops working. It's not a terrible thing considering it's just an unused device. If you're looking for something longer lived, the waveshare screen are worth considering for mini projects.
Dithering works brilliantly on these devices. I made a photo frame out of one of these by calling some imagemagick from golang.
I agree, dithering on these devices works really well. After this project I worked on displaying images of the sun from the NOAA satellite. Until I got dithering working displaying the image with just 4 levels of grey was was very lackluster.
Do you have any pointers on where to start?
What I don't want is to run a server to host something for them to display. I want it self-contained, so once made, it's alive until the device breaks. My experience is 95% of the cost of these is maintenance, and that goes away once a project is no longer new, glitzy, and flashy.
What I actually want to build myself is a clock which displays time in time zones where my friends, relatives, and family are. Most of the other things I'd like are equally esoteric. I'd like this to be a <3 hour project (so it sustains a child's attention span too).
I got a little screen and the demo code worked, didn't know Python well enough at the time to keep running with it (part of the motivation to learn Python in the past year). Might need some work to build a case/enclosure, but beyond that it's a little piece of hardware that does what you wish. I'm thinking similar things, some specific cases in mind.
(I can be hired to do work like this for $15/hr for the first 90 days, contact info in profile).
This was about a month after I returned from a six week trip during which I kept that thing running.
Reminder that a lot of battery-powered devices really don't like to be connected to power all the time.
Shitty ones don't, yeah. A thing you can do with those is remove the battery fully, so it's not being recharged/used at all.
(I know you can get some way toward this with various apps but it’s definitely not the same as something OS-level)
Because they claim to be!
Maybe they could soft lock them to 50% or something but under normal circumstances it's too dangerous.
Connectivity is easy, as you can connect over USB or WiFi (my Kindle connects to my iPhone's hotspot).
I did something similar, but with photos. I managed to process everything on the device in 100% golang with imagemagick C-bindings.
As Imagemagick is also able to render text, it might be a solution for you to get rid of the need for an external server. The ARM build process happens on GitHub actions, so you can check it out.
https://github.com/landgenoot/kindle-synology-photos-photofr...
Really nice project.
I’m getting into having more purpose-built gadgets even if they seem to 70% overlap with each other.
Reading a book on my phone or tablet just isn’t the same.
Displays like this would be a good candidate for wireless power schemes, but they aren’t sited in places with a good set of power scavenging options. Maybe solar.
https://www.stavros.io/posts/making-the-timeframe/
I had to turn it into a generic signage platform first (it lets you show any image you want), and then screenshot GCal onto that image. It works really well, though.
Nowadays it's an electronic power meter, which also looks great.
I made a solar powered conways game of life with an esp32 and a 4.2 waveshare display but the whole time I wanted a few more pixels.
Edit: can you believe it? https://shop.pimoroni.com/products/inky-frame-7-3?variant=40...
1. It's very easy to put it into developer mode and set "don't lock screen if plugged in"
2. I can just open it to a web page of my calendar.
This is great as I don't get nerd-sniped into some dev project trying to set it all up and actually get a functional calendar so I don't miss things.
The expensive corporate version of this is called a Joan - https://getjoan.com/digital-signage/
The software runs on an ESP32 and is all open source: https://inkplate.readthedocs.io/en/latest/
Amazon also gives you a 20% discount for buying a new one, if you send the old one in, even if it doesn’t work at all anymore.
But I understand why… it’s 169eur, the cheaper CO2 meters are just much cheaper.
[1] https://github.com/pascalw/kindle-dash/blob/main/src/dash.sh...
I use to leave it plugged in but got sick of looking at the cord.
Still, "generate a static image from a computer and send it to a display at a certain rate" is an underrated way to do fun things
I just wanted to avoid having to pull data out of Notion & re-build a UI. Would be nice for some way to apply CSS to a page to make it more viewable.
You're writing
> I use FBInk on the kindle to display the images after curling them from a API Gateway.
I am the founder of this smart screen product: https://shop.invisible-computers.com/products/invisible-cale...
Curling an image is the same approach that I use for my e-paper smart screen as well. It should be quite easy to bring your dashboard to my device... maybe we can work together on something? My email is info@invisible-computers.com
I want to be fair to DHL here: The parcels are shipped through the letter network to make the overseas shipping more affordable. It's expected that they take bit longer than the normal DHL packages.
Yea, that's something I have been trying to build, but it's surprisingly non-trivial. There are a bunch of headless browser options, but I haven't found a good way to tell them: "Render the page in X width and Y height and then take a screenshot".
That seems like a problem that should have 100 open source solutions for it, and I am sure there are some that work really well! But I personally haven't found one yet.
Some custom content just for yourself, or an app that others can install as well?
And the connectivity is through Wifi. (And Bluetooth during Setup)