https://github.com/davidhampgonsalves/life-dashboard Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} davidhampgonsalves / life-dashboard Public * Notifications * Fork 19 * Star 1.1k E-Iink based dashboard for every day life 1.1k stars 19 forks Activity Star Notifications * Code * Issues 0 * Pull requests 12 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights davidhampgonsalves/life-dashboard This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 13 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/d] Use Git or checkout with SVN using the web URL. [gh repo clone davidh] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @davidhampgonsalves davidhampgonsalves display sun rise/set in local time ... 38f513f Sep 25, 2023 display sun rise/set in local time 38f513f Git stats * 34 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .cargo Initial commit August 24, 2018 12:17 cmd/main v2 rewrite September 23, 2023 11:28 pkg display sun rise/set in local time September 25, 2023 09:36 static v2 rewrite September 23, 2023 11:28 .gitignore v2 rewrite September 23, 2023 11:28 README.md v2 rewrite September 23, 2023 11:28 deploy.sh v2 rewrite September 23, 2023 11:28 example.jpg v2 rewrite September 23, 2023 11:28 go.mod v2 rewrite September 23, 2023 11:28 go.sum v2 rewrite September 23, 2023 11:28 install.sh v2 rewrite September 23, 2023 11:28 life-dashboard-init disable unused calendar June 14, 2022 10:23 main.tf v2 rewrite September 23, 2023 11:28 start.sh v2 rewrite September 23, 2023 11:28 View code [ ] Life Dashboard Details V2 Rewrite and Compromises Deploy (via Terraform) Run Locally Setup Jailbreak and Setup SSH SSH over wifi Install Copy books to Kindle vis SCP Frame Notes README.md [example] 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. About E-Iink based dashboard for every day life Resources Readme Activity Stars 1.1k stars Watchers 13 watching Forks 19 forks Report repository Releases No releases published Packages 0 No packages published Languages * Go 60.6% * HCL 27.5% * Shell 11.9% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.