e-paper display

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!

Update (28.12.2012):

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):

E-paper display
E-paper display connected to Raspberry Pi

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.

  1. Power On
  2. Initialize COG (Circuit on Glass) Driver
  3. Stage 1 Display update (writing inverted old image)
  4. Stage 2 Display update (writing a white image)
  5. Stage 3 Display update (writing inverted new image)
  6. Stage 4 Display update (writing new image)
  7. 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!

See you

Share on Google+Share on RedditTweet about this on TwitterShare on Facebook

7 thoughts on “e-paper display”

    1. Hi bj,

      the NDA issue is really bugging me.
      I have been thinking a lot about it and these are the facts:
      1. I have not signed anything!
      2. I got the documentation of the display free from the web
      3. I used the doc to create my own code
      4. I do not want to earn money with the display or with the code

      All of this put together I should not be liable. For this reason I published my code under the LGPL!
      It can be downloaded from here:

      Please note that I do not guarantee anything!
      You may brake your display with this code!

      In addition it is not polished, so expect undocumented code segments that seem to make no sense.

      As stated earlier I use the library provided Gordon Handerson, please include his licence agreement and mention his name in all your published code. You can find the agreement in the repository.

  1. Have you made any changes to your software since you released it?

    Would be cool to have your version up and running, I have no luck with the example code from Embedded Artists. (Can only load images by includes, not dynamic).

    1. Hi Jens,

      I am sorry to say that I have not changed/improved the code since the initial release. I was to busy working and got sidetracked with other stuff.

      However, with the software you can find in the asrp repository (./RapsberryPi/workspace/e-paper/Examples/pgmloader) you should be able to compile a simple program that takes any existing pgm image as command line parameter and displays it on the screen. (Note that the workspace folder is an eclipse workplace and should work out-of-the-box)

      I also planned on designing a simple PCB that acts as an adapter for easy mounting on the RPi. So far only the sketches exists, but if others are interested I will spend some more time on it and have them produced.
      In any case I will keep the post up-to-date with the news.


    1. Hi Sriram,

      I recommend using the code embedded artist released.
      You can find it here
      It is available for the Raspberry Pi, Arduino, and the mbed.

      good luck :-)

Leave a Reply

Your email address will not be published. Required fields are marked *