• Stars
    star
    767
  • Rank 57,173 (Top 2 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 6 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

E-Iink based dashboard for every day life

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.

In my case I created an information panel summarizing my day such as my calendar, surf and weather forecast, garbage schedule, school closures, etc. The extra space is filled by a random pokemon sprite.

The project uses a serverless backend to collate data from external services and on the Kindle itself Rust code (cross compiled via docker) fetches and typesets the data into an image.

I built a stand rather then a more standard frame because the e-reader functionality of the Kindle is still present and can be used without modification. I also thought it was important to avoid obscuring the original device and celebrate its reuse.

More details can be found on my blog.

Setup

USB

transfer pokemon folder to Kindle mounted as USB drive.

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.

SSH Over USB

network settings, find RNDIS, change from DHCP to manual and ip: 192.168.15.201.

# set ip of computers usb port
ifconfig # search for device with 192.168.15.201
sudo ifconfig en5 192.168.15.201

ssh [email protected]
/usr/sbin/mntroot rw
mv /mnt/base-us/pokemon/ /

Install

Setup Wifi on Kindle and then run install.sh with Kindle connected via USB or wifi.

Cross Compiling to Kindle (ARM-7 Soft Float)

We need a statically compiled binary to run in the Kindle. There are many ways to do this but on OSX I use docker(via https://github.com/messense/rust-musl-cross) to avoid polluting my system with all the required bits and having to compile each requirement separately.

docker pull messense/rust-musl-cross:armv7-musleabi && \
alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src messense/rust-musl-cross:armv7-musleabi'
rust-musl-builder cargo build --release

Cross

Cross doesn't support soft float for arm 7 yet.

cross build --target armv7-unknown-linux-musleabihf

Copy books to Kindle vis SCP

scp book.mobi [email protected]:/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.

More Repositories

1

interview-resources

long list of resources for preparing for technical computer engineering interviews
428
star
2

hugo-black-and-light-theme

HTML
179
star
3

resume

Resume in markdown
CSS
136
star
4

music-server

Music streaming server on a Android Galaxy S7
Shell
67
star
5

CR14-emulator-for-CatGenie-120

Suppress the CatGenie 120 DRM and refill soap cartridges using an Arduino
C++
60
star
6

Live-RSS-Bookmarks

chrome extension for adding Firefox like RSS/Atom handling
JavaScript
35
star
7

Contact-Identicons

Android app that generates identicons for contact photos
Java
30
star
8

rsvp-bookmarklet

RSVP speed reading bookmarklet
JavaScript
21
star
9

crime-heatmaps

Halifax crime heatmap for apps4halifax contest.
HTML
13
star
10

Gif-Twist

Animates time around a central point
Go
8
star
11

Generative-Tree-Rings

Vector Tree Ring Generator for Pen Plotting
HTML
7
star
12

Wowza-Metadata-Injection-Demo

This is a demo of injecting dynamic synced JSON based metadata into a live RTP media stream and handling it on the client side
JavaScript
6
star
13

photobooth

Python
5
star
14

webhook-liaison

Connect webhook enabled services via configuration
JavaScript
4
star
15

hourlyweather

location aware hourly forecasting app for android which uses the yr.no webservice
Java
4
star
16

slackline

Quick templated Slack messages from terminal
Go
3
star
17

davidhampgonsalves.github.io

content for my personal blog
HTML
3
star
18

quickdraw

Generate a grid of Google Quick Draw Drawings probably for plotting
Go
3
star
19

pygmenter

simple web frontend for the pygments syntax highlighter
Python
2
star
20

tree-roots

a group of webspiders and analyzers for mix tree
Java
1
star
21

grow-clock

ESP8266 powered, recyclable childrens grow clock
C++
1
star
22

markov-cloj

Markov chain generator in Clojure
Clojure
1
star
23

chemical-structures

Generates chemical structural drawings (probably for plotting)
JavaScript
1
star
24

opencv-mosiac

Java
1
star
25

IR-Schedule-Thermostat

C++
1
star
26

mix-tree

very early web front end for music streaming
Python
1
star
27

hourweather

Location aware hourly weather which reuses the code from hourly weather
Java
1
star
28

harvest-automation

Automatic generation of harvest invoice templates
JavaScript
1
star
29

beets-plugin-play

Beets plugin that sends track query results to a music player as a playlist.
Python
1
star