HN.zip

It's School time: Adventures in hacking an old Kindle

116 points by FlyingSnake - 32 comments
bigiain [3 hidden]5 mins ago
In case the author ever sees this...

If you have that battery level available off the Kindle, you can use it to turn a wifi "smart plug" on and off, to automatically top the charge up only when required.

(Or, more old-school, use a powerpoint timer set to only power up for a short time each day. I did this way back, when the place I worked decided they needed iPads stuck next to meeting room doors to stop arguments about who had it booked, but when they first installed them they left them plugged into the charger 24x7, and the batteries in them would puff up in 8-12 months and kill the iPads. Putting the charger in a timer so they only charged hour a day saved them about $6,000 a year in puffed up iPads.)

FlyingSnake [3 hidden]5 mins ago
Author here: Thanks for the suggestion. I do have a wifi smart plug and I can take a look at this near trick. So far it's easier to charge it once a month as it runs fine for 2-3 weeks in one charge.
password4321 [3 hidden]5 mins ago
Last week I xkcd#1053'd (aka lucky 10,000'd) https://chargie.org thanks to https://news.ycombinator.com/item?id=43766728#43767575 (additional anecdata: https://hn.algolia.com?query=chargie&type=comment)

>an interposing dongle [$25 on sale!] which provides a Bluetooth receiver and app that lets you set arbitrary preferences on your phone and fast charge, slow charge, or turn off the charger at configurable state of charge setpoints or times

Another option I learned about just now for Macbooks: https://github.com/AppHouseKitchen/AlDente-Charge-Limiter (macOS 11+; $25 Pro version)

And I saw your recommendation elsewhere in the previous discussion I dug up (https://news.ycombinator.com/item?id=31841051#31842078) because someone mentioned that power cycling the battery on a timer would still eventually encounter the same problem.

>Trades one problem for another. Now you are cycling the battery frequently which is going to do the same thing in the end.

Abishek_Muthian [3 hidden]5 mins ago
I’d add using those old 1A charger for slow charging the device overnight to reduce heat generated during charging especially during summer.
coderatlarge [3 hidden]5 mins ago
isn’t this what usb-pd is for?
marcod [3 hidden]5 mins ago
I just realized I had a few Kindle Fires lying around in a box.

I wanted to give one to a friend who didn't have a good phone so she could listen to audio books. Turns out those old Fires are no longer updated and Android is so old I can't even install anything current on it.

I hope to change that with https://kindlemodding.org/ which was mentioned, so appreciate the writeup :)

theblazehen [3 hidden]5 mins ago
They don't cover the Kindle Fires, however you can get a _slightly_ newer Android from https://xdaforums.com/f/kindle-fire-android-development.1309...
larodi [3 hidden]5 mins ago
Old kindles should be donated to engineering schools and academia to break it into pieces and do new hacks with them. Amazon produced so many of them there’s always one 7” lying around at a friend’s desk.
mtlynch [3 hidden]5 mins ago
>I designed a backend API that collected the data in real-time data and exported it as a PNG image.

Does anyone know why in these Kindle modding dashboards, they always generate the dashbard image on an external server? Why isn't it possible to build all that functionality into an executable on the Kindle itself? You've got a Linux environment, so why can't you run all the logic locally?

FlyingSnake [3 hidden]5 mins ago
It is definitely possible to draw the images on the Kindle client, e.g. KoReader does that. I've mentioned 2 different ways in the article FBInk and Kindlet. I found it a bit cumbersome to use these tools and the tooling is bit iffy. It was easier for me to just download it from the server.

[1]: https://github.com/NiLuJe/FBInk

[2]: https://wiki.mobileread.com/wiki/Kindlet_Index

kovac [3 hidden]5 mins ago
I built this dashboard. The price curves and text are rendered locally from the microcontroller and painted pixel by pixel. Letters use raster fonts stored locally, price curves are generated on the fly. It can be done, it takes a bit of care. Mine only has ~400KB memory. It must be a lot easier on the Kindle, I think it runs Java even.

https://www.asciimx.com/projects/etlas/

FlyingSnake [3 hidden]5 mins ago
Thanks for sharing your project, it is very cool! I'll check it out and see if I can get it to work.

Kindle is very hackable if you're ready to endure some weird quirks. E.g. You can install Python on kindle or do custom software using various tools like Gcc, clang, Perl etc.

1: https://wiki.mobileread.com/wiki/Python_on_Kindle

2: https://wiki.mobileread.com/wiki/Kindle_Hacks_Information#Ki...

kovac [3 hidden]5 mins ago
Sure, if you run into issues, feel free to drop me an email. My address is on the home page.

Thanks for sharing the resources! Great to connect with fellow e-paper enthusiasts :)

seba_dos1 [3 hidden]5 mins ago
...and if you're not ready for enduring weird quirks, just launch stuff out of Debian chroot within Xephyr. I've used Pidgin this way many years ago.
dmitrygr [3 hidden]5 mins ago
Most people today do not know how to program in the confines of 256MB of RAM and are not aware that languages other than javascript exist.
supportengineer [3 hidden]5 mins ago
I expected the Kindle to do a few api calls and call ImageMagick but instead, in Cloudflare, it sets up a headless browser, and renders a web page to a PNG file on the server, and then only the final png image gets returned to the Kindle.
stavros [3 hidden]5 mins ago
Is there anything like this that can wake the Kindle up, get an image, and then sleep it again? I have an old Kindle that I want to show stuff on, but I don't want to keep it plugged in all the time.
FlyingSnake [3 hidden]5 mins ago
> wake the Kindle up, get an image, and then sleep it again

This is basically what I'm doing with this project. I tested the client by getting a dummy image initially. This line in the code puts it to sleep for x-duration. The kindle runs for ~2-3 weeks on a single charge.

[1^]: https://github.com/samkhawase/kindle-dash-client/blob/master...

stavros [3 hidden]5 mins ago
That's what I wanted, thank you!
kovac [3 hidden]5 mins ago
I work on e-paper displays. Are you looking for something built with a Kindle?

This project of mine is similar to what you described with a power down mode. The power down and wake up can be automated. I'm looking to build a small business around such projects. Not sure how viable it is.

https://www.asciimx.com/projects/e-reader/

stavros [3 hidden]5 mins ago
It does seem pretty viable, TRMNL are pretty popular:

https://usetrmnl.com

I made some stuff of mine for that display too, but the easiest way is to just use TRMNL's firmware, as it supports autoupdates and a few other nice features.

Here's mine:

https://www.stavros.io/posts/making-a-trmnl-device/

Plus this:

https://www.stavros.io/posts/making-the-timeframe/

And a few more things I never wrote about.

The Kindle project is just because I have a few Kindles lying around, so I might as well use them!

kovac [3 hidden]5 mins ago
That's beautiful, thanks for sharing. I was wondering what may be the best way to do frames. Custom frames, here in Singapore, are a bit expensive relative to the rest of the parts.
stavros [3 hidden]5 mins ago
3D printing is one good way, the other way I used is just to get a frame from IKEA and 3D print the inside white bit to my exact dimensions, which worked beautifully.

I should post that build too, with some photos, I really like it.

seba_dos1 [3 hidden]5 mins ago
bash, rtcwake, any X11 client
mahi_novice [3 hidden]5 mins ago
Love this! Always fun to do stuff like this.
badmonster [3 hidden]5 mins ago
highlights for me:cf-wasm for image transformation and the graceful handling of real-world issues like BVG strikes.
gitroom [3 hidden]5 mins ago
lol i get weirdly obsessed with decimal places on stuff like this too - makes me laugh every time.
dmitrygr [3 hidden]5 mins ago
4 significant figures on weather temperature is kind of funny to look at. Must be some very accurate forecasts
FlyingSnake [3 hidden]5 mins ago
I did that on purpose. My daughter is learning decimal place value system in school and I thought it would be a cool Easter Egg for her.
mobilemidget [3 hidden]5 mins ago
I was just here to write the same thing :) imagine it being 0.01 degrees too warm or cold
alnwlsn [3 hidden]5 mins ago
Reminds me of those times I work with temperature sensors which report in eighths of a degree. 3 decimal places to give less than one decimal place of precision. You can round, but somehow that doesn't feel right.
megous [3 hidden]5 mins ago
Hacking here seems to have been done by others.

Anyway, speaking of hacking... check out what pocketbook creators themselves did with some of the older pocketbook models. They managed to drive eInk display panel from a normal RGB LCD interface, because they used a SoC (A13) without eInk interface. One of the weirder things I saw during my reverse-engineering adventures. :D