
Kindle-4 BYOD+BYOS running on batteries
Hello!
I had a ~12 year old Kindle 4 laying around and decided to try to convert it to a TRMNL device. I have deployed a local LaraPaper instance and started playing with it.
After jailbreaking and installing KOReader I was greatly disappointed in the battery life of the thing (~1 day) as well as hacks required to stop the screensaver from kicking in (magical strings typed into the Kindle search bar... wow). KOReader runs on Lua, so I guess it is not that surprising in the end.
So, I decided to go lower and try the TRMNL-kindle way, which uses a shell script launched from KUAL. Note that very recently it merged some changes which puts the device into a proper sleep, so it looked quite promising.
It did not work, of course. My Kindle being old and special. The screen just turned blank. Enabling debugging did nothing. But I was too invested at this point. I got the SSH server working on the device and started peeking under the hood through the terminal.
Turned out that my version of Kindle handled the screen redrawing command a bit differently, making it not compatible with the script. Easy to fix. Then it turned out that my LaraPaper instance is serving escaped image paths, that were breaking image download. Then WiFi was mishandled. Then battery reporting. Airplane mode...
2 evenings later I had it finally working, but it kept freezing after a couple of hours or so. I think this was KUAL launcher being garbage collected by the Kindle OS or sth. So I moved to manually starting it from console in a detached state.
Aaaaand, I think it works, finally? It is working for the last ~20h uninterrupted.
It seems to drain ~15% of battery per day, when polling every 20 minutes. And this is the original Kindle battery. I think I should easily get it working over a week on a single charge. If I go lower on the refresh period, maybe 2 weeks are doable too!
I know it looks a bit baffling compared to the real TRMNL battery life, but I spend zero dollars and had a lot of fun. Now, planning to 3D print and enclosure for it.
BTW, this new hardware sleep code has a nice side effect of introducing "refresh on wake up" feature that someone was previosly posting about on this subreddit before.
EDIT: it seems that it still just crashes the process from time to time :( . Need to debug it more, I am afraid