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

(samkhawase.com)

100 points | by FlyingSnake 2 days ago ago

24 comments

  • bigiain 7 hours 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 10 minutes 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 4 hours 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 34 minutes 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 2 hours ago

        isn’t this what usb-pd is for?

  • mtlynch 7 hours 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 41 minutes 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 7 hours 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/

    • dmitrygr 7 hours 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 7 hours 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 5 hours 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 28 minutes 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...

    • kovac 5 hours 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 5 hours 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 5 hours 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.

  • badmonster 3 hours ago

    highlights for me:cf-wasm for image transformation and the graceful handling of real-world issues like BVG strikes.

  • mahi_novice 9 hours ago

    Love this! Always fun to do stuff like this.

  • gitroom 8 hours ago

    lol i get weirdly obsessed with decimal places on stuff like this too - makes me laugh every time.

  • dmitrygr 10 hours ago

    4 significant figures on weather temperature is kind of funny to look at. Must be some very accurate forecasts

    • FlyingSnake 25 minutes 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 10 hours ago

      I was just here to write the same thing :) imagine it being 0.01 degrees too warm or cold

      • alnwlsn 10 hours 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 4 hours 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