E-Ink display recommendations for a Nerves project


has someone worked with Nerves and a Raspberry Pi + E-Ink display yet?

I would like to use a Raspberry Pi (or other nerves enabled hardware) to display something on an E-Ink display. I would like to “draw” things manually (display images, text, lines, etc. on coordinates) and not just display a browser page.

The display should be as big as possible. 7° and above.

Can someone recommend a hardware setup that will work? I am not really a hardware guy so the less complicated (e.g. hacks or custom soldering) the better :slight_smile:



That sounds like a fun project! I haven’t done anything with e-ink displays yet. This one doesn’t seem to be available anymore, but is it kind of in line with what you’re thinking? http://www.pervasivedisplays.com/kits/mpicosys740

This one has promise with a built-in controller and uses SPI: https://www.waveshare.com/7.5inch-e-paper.htm. I can’t guarantee anything will work (you’ll have to do some trial and error, but that’s part of the fun!). There’s Raspberry Pi help in the wiki here https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT#Working_with_Raspberry_Pi.


Thanks, the second one sounds promising. I would like to hear from some Nerves maintainer how easy the version with the Raspberry Pi hat would be to get running.

If it’s an SPI display, there are kernel drivers available for these displays so it might just work out of the box or you need to build a specific Nerves system (I just did that yesterday for a TFT SPI display). Driving it can either be trivial (boot Xorg, although on an e-ink display that’d be, err, “interesting”), doable (steal from my Uderzo project–the best solution of course ;-)), or pretty hard (drive the SPI display directly).

As far as I can tell, most people draw to the RPi’s videocore framebuffer and then copy each frame to SPI, which is what I ended up doing. The copy operation, after some setup, is two lines of code. I don’t think that it matters whether you have a TFT or an e-Ink display.

1 Like

Here are a couple more good options:

If something’s available from Adafruit and designed for Raspberry Pi, that’s always a good sign that it should be possible to get it working relatively easily with Nerves. There is likely to be Python code samples or something you can try using Raspbian to get a feel for how it works before you try to get the same thing working with Elixir and Nerves.

Sometimes, you will need to take a look at how their Python code works and emulate the same behavior, but it sure helps to have working code and a running system to inspect instead of just a datasheet.

I just picked up a Waveshare 7.5" e-paper display + HAT. I’ve got it working using the provided demo implementation using Python, over SPI, but now thinking about writing a Scenic/Nerves driver for it. Before I jump in, has anyone tried this or anything similar already?


@engineeringdept did you do any work on this? I just happened across a Waveshare display and was thinking about trying to drive it with Elixir.