Driving E-ink display
E-ink displays, such as the ED060SC4-V2, are easily available off eBay. They are sold as spare parts for e-book readers, but there is nothing to stop you from using them in your own hobby projects. Or is there?
The only problem is that there is very little documentation available on how to drive these displays. I have assembled below a list of the useful material I have found. All of this was found using Google:
- Datasheet of the PrimeView ED060SC4 panel. It contains the pinouts and information on driving voltages, but only very basic description on how to drive it.
- Datasheet of the Epson S1D13521 E-ink controller. This contains a lot of information on how the panel is driven, but a lot of it is also useless if you are driving the panel directly instead of through controller IC.
- Schematics of G6 ebook reader using this panel. These help on the electronics design and also map the S1D13521 pins to the names used in ED060SC4V2 datasheet.
- Source and gate driver brochures. These are the chips that are on the edges of the display panel.
- Renesas' presentation on driving E-ink screens. This contains a lot of general information on the E-ink technology.
Long story short, I have found out reasonable way to control the display and the pages below will tell the details. Here is a short demo video:
To drive a plain E-ink panel, you need to provide it with specified supply voltages and to drive the digital signals with the timing that it expects. Unlike with normal TFT-panels, E-ink screens do not have a minimum refresh rate so you can do this even on a very slow microcontroller.
Having the electrical connections figured out, there is the problem of what kind of signals to feed into the display panel. In theory, it is simple enough: just shift in some bits to the source driver register and step the gate driver register. In practise, however, there are a few gotchas..
Actually drawing the graphics for the display is both the easiest and the hardest part. The basic algorithms for line drawing, fonts etc. have been known for decades, and there are a thousand implementations available online. However, there seems to be a lack of good open source graphics libraries for microcontrollers, and close to zero that could do display list rendering.