A few years ago, a friend and I were given an e-paper/e-ink development kit containing a piece of e-paper, a controller board, and a Gumstix computer running a lightweight Linux distribution. For many years it sat in a drawer collecting dust, until fifteen months ago I decided it would make a good decoration for my door. Of course, since I'm an EE, I wanted it to perform some useful functions, such as either displaying photos or interesting at-a-glance information. Since the display supports only 2-bit (4-level) grayscale, I decided a photo display was infeasible, and instead wanted to make it an information display. As far as external interfacing, it supports bluetooth "modems" and RNDIS over USB as a USB slave, but has no discrete ethernet adapter or the ability to act as a USB host for a USB ethernet adapter. After a few failed Bluetooth experiments, I chose to use the RNDIS ethernet-over-USB solution, with my desktop computer acting as a bridge.
I prototyped a solid-state power supply for the paper, since it takes an unusual input voltage of 12.7V; anything more than 0.3V out of spec causes the e-paper to update improperly, which I suspect is a flaw in the device. I transferred the circuit to perfboard, but unfortunately ran out of time to complete the project. Fast-forward from September 2010 to December 2011, when I finally got around to completing the project. A few hours got me a working PHP script that uses the GD2 image library to render an 800x600 image to display on the device, saves it as a PNG, uses ImageMagick to convert it to a PGM image, and then compresses the result for the device. I wrote a small shell script on the Gumstix that pulls a new copy of the compressed image from my server every five minutes, decompresses it, and displays it on the ePaper. Finally, I hacked together a very long USB extension cable using disassembled CAT-6 ethernet cable, which allowed me to preserve at least some of USB's cross-talk protection using the ethernet cable's twisted pairs. Voila!