Wednesday, 2 August 2017

Why does "flashing" prevent ghosting on E-Ink displays?


Anybody who owns an E-Ink device (like a Kindle) will be familiar with the phenomenon of "flashing" -- basically, when turning a page, the device will first flip all of the pixels to black, then draw a "negative" of the page, and then invert the whole thing.


The Wikipedia page for "Electronic Paper" gives a brief description of the problem, and attributes it to the need to prevent the "ghosting" of the previous image onto the new one. This is corroborated by my own evidence: if I use the KDK to write an application that doesn't flash the screen, the ghosting is evident.


My question is, why does ghosting happen, and why does flashing prevent it? I have a rough understanding of how E-Ink works (thanks to the aforementioned Wiki article), but nothing there explains to me why ghosting occurs, or why reversing the charge a few times alleviates the problem.



Answer



A pixel is comprised of tiny balls full of black ink suspended in white fluid, and how black the pixel looks depends on what percentage of the balls are near the top of the fluid. For a black pixel they're ideally all at the top and for a white pixel at the bottom. If only some of them are at the top, or many of them are floating halfway down, etc., the pixel may appear to be some shade of grey. You might think of the floating balls as subpixels.



The balls get to the top or bottom by having an appropriate charge applied to each cell. However, each cell might be influenced by its neighbors as well as the applied charge. To the extent the balls are attracted to charge on a neighboring cell (horizontally) rather than its own cell (vertically) they won't wind up in the intended place. If a cell is changing from black to white and all its neighbors are also, it will transition more completely than if some neighbors are staying black or are going the other direction. This is where ghosting comes from.


The solution is to drive the entire screen white-black-white (or similar) so that no cell has a problem from neighboring cells, and then apply the desired screen image. Every screen write starts with a screen that has been wiped clean so there is no afterimage of the previous screen.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...