Life Dashboard

基于 E-Iink 的日常仪表盘。这是低功耗抬头显示器的实现,适合在 Kindle 上运行的日常生活。「E-Iink based dashboard for every day life. Low power, heads up display for every day life running on a Kindle.」

Github stars Tracking Chart

Life Dashboard

Low power, heads up display for every day life running on a Kindle.

Details

Second hand Kindles are waiting in drawers for someone to repurpose them into something great. Boasting large e-ink screens, wifi connectivity and ARM processors they are an amazing hacking platform.

(This is the second version of this project, see the post about the original here)

V2 Rewrite and Compromises

Ideally this dashboard would generate and display its image on its own. The issue with doing this originally was that the Kindles ability to display images (via eips) requires they be in a strange format. A few yars back when I started this it was hard to get GoLang to generate this format but it was easy to cross compile GoLang to the target ARM-7 softfloat arch. On the other hand Rust could generate the image but it was a pain to setup the cross compiler toolchain (also connecting to Google API's wasn't well supported).

In the 5 years that followed the dashboard was a great tool but as API services would die (Magicseaweed, Forecast.io, DarkSky, etc) it would break. Sometimes that would require changes to the Rust front end and I would have to setup the cross compiling toolchain on each new machine I was using and eventually this got annoying.

I found out about FBInk which has Go bindings and decided that using that I could use it to do text layout and print the resulting PNG's to the screen. Unfortunately I found that GoLangs OpenFont lib crashes when run on the kindle and that these old arm archetectures aren't well supported. This seemed like an unstable footing to build on.

This led me to my current compromise. I use FBInk on the kindle to display the images after curling them from a API Gateway/Lambda backend. This gives me a low friction way to update the API logic without needing to touch the kindle or cross compile anything. I also was able to use GoLangs tdewolff/canvas which provides nice text setting and image generation tooling. I think is the right balance to keep this device productive for another 5+ years.

Deploy (via Terraform)

./deploy.sh

Run Locally

go test -c -o ldb.test ./pkg/ && ./ldb.test && open ldb.test.png

Setup

Jailbreak and Setup SSH

See (https://wiki.mobileread.com/wiki/Kindle4NTHacking) and if bricked then use Kubrick in VM to restore.

SSH over wifi

Hold power button till light flashes, then press power button a few times to restart back to normal e-reader mode. SSH server will be running and wifi will auto connect.

Install

  • Install Fbink.
  • Setup Wifi on Kindle and then run install.sh.

Copy books to Kindle vis SCP

scp book.mobi root@192.168.15.244:/mnt/base-us/documents/
dbus-send --system /default com.lab126.powerd.resuming int32:1

Frame

3D printed using wood filled filliment - https://www.thingiverse.com/thing:2536906

Notes

The mobileread forumn is the place for mobile reader hacking.

I could have avoided the backend of this project and only used the Kindle but I had already created it for another project and saved time to reuse it.

Main metrics

Overview
Name With Ownerdavidhampgonsalves/Life-Dashboard
Primary LanguageGo
Program languageJavaScript (Language Count: 4)
Platform
License:
所有者活动
Created At2018-04-17 15:04:04
Pushed At2025-04-15 13:04:30
Last Commit At2025-04-15 10:02:24
Release Count0
用户参与
Stargazers Count1.3k
Watchers Count14
Fork Count19
Commits Count52
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count0
Pull Requests Open Count13
Pull Requests Close Count19
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private