I recently bought an e-paper display with a 2.7″ screen size distributed by Embedded Artists. Since it does not consume any power between updates it is perfect to display status information for any kind of embedded technology. Since I am quite the Arduino fan my plan was to hook it up to one of them and simply use an existing software library to interface it. (Update available)(second Update)
Well, bad luck. Currently, only a closed source library exists for an ARM architecture. So no library for the Arduino Uno. Libraries for the Raspberry Pi, Arduino, and the mbed have been released and can be found here
No problem, I code it myself and pass it on to the community. Wrong! All information about the display is only available after signing a NDA (Non Disclosive Agreement). So even if I succeed to code a library, I am not sure whether I am allowed to distribute the code.
So what do I do now? I think I will start coding the library anyway and in the meantime try to get in contact with the producers. They already mentioned that they are going to release some code, quote:
Pervasive Displays plan to release drivers in source code under the Apache 2.0 license in January-February 2013. Until then an NDA is needed to get the driver source code.
This means I can use my code until they decide to make their code public and then switch to their version. I will update this post the second I have a working version of the display ready. Until then happy hacking!
I was successful writing a small sample program able to display any image in PGM format. However, not with an Arduino as the backend. It turns out a lot of memory is needed to store a single image and the e-paper display needs two (one is the currently displayed one and the other is the new image). But with my trusty Raspberry Pi and a very nice library developed by Gordon Handerson I was able to interface the neato display using the onboard SPI of the Raspberry Pi.
Images will follow, so stay tuned!
second Update (28.12.2012):
As promised the working e-paper display connected to my Raspberry Pi. The text you can see on the display is actually a .pgm image loaded by a small program I developed.
The update rate of the display is currently really poor. It takes approximately 7 seconds to change the screen. I have yet to figure out why this is the case. I assume that the SPI Bus is too slow on my RPi. The process of displaying a new image is divided into several subprocesses.
- Power On
- Initialize COG (Circuit on Glass) Driver
- Stage 1 Display update (writing inverted old image)
- Stage 2 Display update (writing a white image)
- Stage 3 Display update (writing inverted new image)
- Stage 4 Display update (writing new image)
- Power Off
In every step quite some data is being sent to the display and with the bus frequency to slow this may be the cause of the lag. Nonetheless, I am very happy with the result and with the display!