Interfacing EPD (E-Ink) display from Kindle - anyone tried? - Page 1
Forum section: electronics / general

author: Yansi
author_rank: Super Contributor
timestamp: November 24, 2014, 07:09:40 pm
content: HiI've started playing with EPD displays - that ones which fit Kindle. You can buy them really cheap anywhere from china (ebay, aliexpress,..). The problem is, there is almost no documentation (except few incomplete datasheets or databriefs) and also no waveform file available. (About wf files later)There exists some EPSON controller, but it is almost unobtainable and also requires the WF file, which you don't get with ur cheap display from china. (And also the epson chip is fucking large BGA)So, the question is, did anyone try interfacing this kind of EP display? Any knowledge or experience sharing is welcome.I know one webpage, where someone gave much effort to run his display. And his display works fine. Here you can read about his success:http://www.essentialscrap.com/eink/He has done quite a lot of work. Do you know any similar page about this stuff? Please, share!I'd like to try interfacing such display myself. So I am going to make some PCB for testing. (a shield-like PCB for STM32L-Discovery). Pcb is almost done and then I've run into trouble! I've begun checking and probing the wires going on the FPC cable. I noticed, that the pins wired on the cable does not match the datasheet I have. Whatta?! I have a different type of display (I have from LG), so I made a little table to compare the different pinouts of the Primeview and my LG display and what pins do I have on the connector connected. So, the red marked signal wires are not fitted on the FPC cable end on my display, the yellow ones are there, but the datasheet saysconnection is there.If there is anyone with experience with theese displays, can you give me please a hint, why the datasheet might got it wrong? The interesting thing is, Petteri Aimonen from essentialscrap.com had found, that the SHR and RL signals which changes the data shift direction have no effect whatsoever, on his display. Is there a probability, his display doesn't have these two signals fitted, like my display isn't fitted with other signals? I might ask Petteri Aimonen to check his display, if he's got these two wires on the FPC. That information could help a little, why his is not working when pulling these lines. Now I am a little bit confused what to do with these two pins, which aren't described in datasheet but i can see them on the flexcable. Leave them, or tie to ground or somewhere? What do you think?WF aka Waveform file - is something is some format defining the driving waveforms. Display specific. Doesn't come with a cheap display from china. If I got it right, the file also defines the waveforms for using the display in grayscale. Without that, we can only use ON or OFF states for pixel, or we can guess. Or anybody knowing how to grayscale that sucker? Mine supports 8 levels, the datasheet said.And what about the VCOM voltage (0 to -2.5V)? On the original costly displays, there is a sticker with a specific voltage to be applied there. Guess what - the display from china has no sticker with voltage written. So I've connected that to a DAC one can experiment with that voltage. What effect has the voltage, or how do they determine the correct voltage?A photo of my display to attract people for this stuff :-) (it came from china with that image)And a preview of a minimalistic board to run EP display. Not the best, really minimalistic. Hope it will work, especially the the crazy ~1MHz switchmode supply of +-20V.So thank you for any help. If you are into these stuff, I can share the gerbers for the PCB.Here is the datasheet for the primeview display:http://www.essentialscrap.com/eink/ED060SC4V2.pdfHere is Petteri Aimonen's web page:http://www.essentialscrap.com/eink/Here is the datasheet for the LG display:

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2014, 03:28:53 pm
content: i am still toying with STN LCD, they are so complex that i am using an fpga to enjoy the funbtw, sonner or later i will play with E-Ink LCDs, too

author: Yansi
author_rank: Super Contributor
timestamp: November 25, 2014, 04:08:14 pm
content: What kind of STNs dou you play with? The "QVGA standard ones" with common 4bit interface are relatively trivial. FPGA unnecessary, basic PLD will do it. Or did you mean those old "notebook like displays" with VGA or SVGA resolution? Have a bunch of those in a drawer, but every attempt to run them failed, because lack of some serious documentation.

author: amyk
author_rank: Super Contributor
timestamp: November 25, 2014, 04:32:37 pm
content: QuoteThose are shift direction pins so they're not critical - they could be used to change the scanning direction of the display but chances are they're already preconfigured at some default, which is why they're not brought out.As for getting the waveform file, you could take a look at some of the smaller EPD driver ICs that have programmable waveforms - e.g. SSD1606. It looks like they're just applying PWM to the pixels so they're left in a partially dark state.VCOM sounds like a voltage for adjusting contrast/"brightness".Otherwise the signals are not so different from the typical controllerless LCD.

author: Yansi
author_rank: Super Contributor
timestamp: November 25, 2014, 05:31:12 pm
content: QuoteThat is easy to say, but I think you haven't read even half of my problem with what is exactly on the FPC cable and what is in the datasheet. How can I trust such documentation? So for some level of "sureness" and compatibility, I connect those wires somewhere on free GPIO.PWM pixels sounds like possible explanation, already thought about that but I haven't found any proof about that. I will study that controller.Signals are not much different, but those waveforms and timings are.

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2014, 05:44:48 pm
content: Quote from: Yansi on November 25, 2014, 04:08:14 pm320x240x4bit LCD, 4 bit, the video controller is integrated with a soft core that i am developing, so i'd better go with FPGA. In my case Spartan3EQuote from: Yansi on November 25, 2014, 04:08:14 pmthe real problem is … 1024x768x32bit x100Hz … you have a very high frequency signals on the bus, so an LCD like that needs a LVDS interface and a very accurate cable, else way it will have signal integrity problem.

author: Yansi
author_rank: Super Contributor
timestamp: November 25, 2014, 06:07:22 pm
content: SXGA displays usually have LVDS (nasty stuff), but I wasn't talking about them. Some old dumpster salvaged STN LCDs with VGA or SVGA (640 / 800) uses somewhat 8bit parallel bus. But I never found any reasonable specsheet for this type of bus. Sometimes even finding a pinout is pain in the ass.Oh... softcore... I am not such advanced HDL coder, I leave that for later toyingMy knowledge is only upto CPLDs (from Altera - Like their tools, more friendly, than the Xilinx's). Then maybe I will study Altera Cyclone twos. They are easily obtainable for a few bucks. (But Spartan 3E also seems to be a "classic" toy for big boys)But back to the EPDs: I've made some last changes to the PCB, later this week I might send it to a local manufacturer. So next week I can start populating the PCB. (I hope, china delivers the switching supply circuits FAST. It is the last component missing.) Thats the plan.//EDIT: I've looked into the SSD1606 datasheet. It looks like there is a lot of useful information, thank you. I am staring into that waveform table now, but still don't get it what the table is trying to tell me. (on page 22). Anybody can explain please or give me a hint?SSD1606 datasheet is here:http://www.lcd-module.de/fileadmin/eng/pdf/zubehoer/ssd1606_1_1.pdf

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2014, 10:48:43 pm
content: have you ever interface an STN LCD with a CPLD ? i mean any real project ?

author: amyk
author_rank: Super Contributor
timestamp: November 25, 2014, 10:56:47 pm
content: QuoteYou can always change the orientation in software, so whatever shift direction the panel has been set at doesn't matter. I would just ground those pins.Here's what I figured out from that datasheet regarding waveforms:Since an EPD retains the last written pixel values, the actual voltages applied (and for how long) to each pixel on each refresh cycle describe achangein the pixel intensity and not the intensity itself. With monochrome operation, the two intensities are easy to achieve: for white, apply one polarity to the pixel long enough to cause it to become fully white, and with black, apply the opposite polarity for the same amount of time.Grayscale is achieved by not letting the pixels "saturate" - for example, starting with a fully black ("saturated") pixel, a brief pulse toward white will lighten it slightly, and successive pulses will cause it to become lighter until it eventually saturates at full white. The waveform table describes, for each previous and next desired pixel value, the pulses required to transition the pixel to that value. With a 2-bit (4-level) grayscale, each pixel can be in 4 states (black, dark, light, white), and there's a total of 16 different transitions that can occur frame-to-frame (e.g. 0 -> 0, 0 -> 1, 0 -> 2, 0 -> 3 (full white to full black), ... 2 -> 3 (light to white), 3 -> 0 (white to black)).In the SSD1606 the waveform table supports up to 20 steps (called "phases" in the datasheet) for a pixel transition, and in each of those steps the table entry describes what the source driver should output: VSS (neutral), VSH (+), VSL (-), or HiZ (disconnected). The TP[0..19] entries describe for how many clock pulses that phase should be applied, while the VS[n-XY] "indicates the voltage in phase n for transition from GS X to GS Y".The example on page 22 shows the 3 transitions 0->0, 0->1, and 3->3; for the 0->0 transition, it says:VSS for 8 pulsesVSL for 4 pulsesVSL for 7 pulsesVSH for 3 pulses...Similar to LCDs, the drive characteristics change with temperature (pixel "response time" is probably proportional to their temperature), so this controller also allows selecting up to 11 different waveforms, one for each temperature range.

author: Yansi
author_rank: Super Contributor
timestamp: November 25, 2014, 11:20:24 pm
content: legacy: On CPLD not really, I do CPLDs only for short period of time (will be now almost half a year). I only tried generating drive signals from MCU. Not any "reasonable project", I only tried to put there a waveform and display some test pattern. That was on a common display type: PG320240WRM. There are a lot of them around, many variants (with or without BL or touchscreen, different BL colors,...). Some of them also have a possibility to populate an EPSON controller on the back of the display module, but I haven't tried that yet. I think there fits RAiO RA8835P3N display controller (I think I've seen that on some display module), which is I think a clone of EPSON SED1330 and they are compatible. Maybe. Programmable logic is quite new for me and with a limited time to play with the progress is slow. But Xmas coming, will be some spare time for toying! I plan to make a display controller for this type of display with EPM240T100, very common CPLD, I bout a bunch of these ultra cheap. Very nice.. I also thought if I could fit simple controller into 64macrocell EPM3064 which one can get even cheaper. But this is for another thread and topic, does not fit in here.amyk: Thank you for a lot of info. I begin to understand now. But the first step hasn't ben made yet, first, I need the PCBs. So stay tuned for my big fail with thatMy only question is about the pixel data. There two bits for each pixel. Four combinations. If we look into the SSD1606 datasheet, we can see three active states (00 VSS, 01 VH, 10 VL and 11 Z - If I remember that right). But if we look on Petteri Aimonen's page herehttp://www.essentialscrap.com/eink/waveforms.htmlat the last table bottom, we can se combination of 00 described as "no action". Does Petteri have that table wrong? If I understand the EP display principle right, VSS doesn't force the ink to a specific color (white or black), but (ground) voltage is applied there. The real Hig-Z state ("no action") is the 11 state. Is my understanding right?

author: amyk
author_rank: Super Contributor
timestamp: November 26, 2014, 05:36:57 am
content: Quote from: Yansi on November 25, 2014, 11:20:24 pmPutting VSS on the electrode will mean that the slight voltage difference between it and VCOM still exists, so it's not truly "no action" but it's more like a state to drain away any charge. Hi-Z holds whatever charge was on the electrodes, so the pixels will continue changing, but if they're saturated already, there's no effect. They both look like they have no immediate action, however.I decided to hunt around for some more info -- since I'm traditionally used to LCDs so this is interesting stuff -- and found this good explanation on the waveforms:http://aoe.scnu.edu.cn/uploadfile/2014/0508/20140508112156532.pdfThis heavily censored (f*cking bastards...!) reportcontains some interesting bits... and the diagrams on pages 39 and 40 were enough to figure out that the source driver is an IXYS MX860 and the gate driver aSharp LH1692. These two are mentioned on the Epson S1D13521's datasheet, and that's what the Kindle uses, so likely to be what your display has. The source driver datasheet is the really interesting part, but unfortunately I can't find the full version anywhere.Here's another EPD controller that uses the 00/01/10/11 scheme with 00=VSS and 11=HiZ:http://www.good-display.cn/downloadsfront.do?method=picker&flag=all&id=24d1fab4-ef21-4673-9f32-698c2d44b02b&fileId=efcf1219-8489-479c-b557-9075414629f8&isDownloadPermissions=trueI2C-based segment driver, +/-15V, once again 00=VSS/01=black/10=white, also contains an example of default monochrome drive waveforms:http://www.onsemi.com/pub/Collateral/ENA2223-D.PDFThere's also a lot of info in patents, if you want to look there...

author: Rasz
author_rank: Super Contributor
timestamp: November 26, 2014, 01:03:01 pm
content: this is a cheap chinese replacement, of course it will have missing pins, they only implement bare minimummy fav story was of OLED nokia screen - chinese clones are pin compatible, but give visibly worse color/contrast/angle, they were made using ordinary TN LCD + led backlight + small DC-DC for the led - all fitted inside original size small flat LCDhmm gooogle, here is something about those fakes:https://gobotronics.wordpress.com/2011/10/09/nokia-n85n86-amoled-display-hacking-project-amdf001/back to your eink, dont worry about missing pins, screen is made to work in kindle = they are unusedFrom my experience nothing beats listening on data between device you want to hack and its original controller. Plug a scope between interesting pins on a kindle and start dumping data.

author: Yansi
author_rank: Super Contributor
timestamp: November 26, 2014, 02:55:24 pm
content: Rasz: There is a catch - I have gotkindle.So no device to probe.

author: krivx
author_rank: Frequent Contributor
timestamp: November 26, 2014, 03:44:59 pm
content: I would keep an eye on ebay for a kindle with a damaged screen, it's the most common failure.

author: Yansi
author_rank: Super Contributor
timestamp: November 26, 2014, 05:12:50 pm
content: That is a solution, but I cannot waste much money on things which I don't need. I admit I don't know what kind of price to expect on such a damaged kindle, neither do I know a price of a new one. I'll look, but probably I will not buy any.Thanx for a lot of other stuff for reading and thinking about.So do you think that the display I bought is a chinese replica (fake, crap, junk, just fill in your appropriate word for that) of the LG one? mmm... might be. Interesting (but unsurprising) conclusion. my problem with the SHR and RL pins was not just about rotating the screen by software, but about the wires and their connection. Float them or tie ground? That was the dilema. I've already "solved" the problem by connecting the two pins to the ARM, just for testing purposes. They are obviously connected somewhere to the chips.Then if I need to make some other project(s) using these EPDs, I will base on the gathered information and experience. Now it simply doesn't matter, how many pins or MCU resources I am going to waste.So now I must wait for pcbs being made.

author: krivx
author_rank: Frequent Contributor
timestamp: November 26, 2014, 05:24:36 pm
content: Quote from: Yansi on November 26, 2014, 05:12:50 pmI'm not sure where in the world you are, but US ebay has units with broken screens at 10usd...

author: Yansi
author_rank: Super Contributor
timestamp: November 26, 2014, 05:39:06 pm
content: Meh, I can see them too, but the postage is twice or more than the item's price. And the customs bitchsuckers here probably might want me to pay a tax. (not sure..?) And bureaucracy around this is so fucking annoying here, one shoudn't want to do this for a broken kindle. Lets forget that, already have a (probably) good working chinese fake display for toying

author: Rasz
author_rank: Super Contributor
timestamp: November 27, 2014, 04:11:56 pm
content: I doubt its fake, kinda hard to fake eink, more likely just a cheaper module - all mf'rers buy same LG glass, but packaging, flex, etc can be made cheap, just cut corners on everything non essential and you can sell $20 replacements for $70 originalsyou can always buy used kindle just to measure stuff, and resell it later

author: Yansi
author_rank: Super Contributor
timestamp: January 12, 2015, 11:39:12 pm
content: After some delay, a progress has been made. I have got a board. But bcs I'm an asshole I've made there a mistake in the power supply, bodge is to be made. Shame.And of course I haven't seen in the design review. This is the board version 2 what I got here, still, bad mistake remained unnoticed.Good news, the crazy FFC connector can be soldered easy, piece of cake, using just standard "solder drag". I made teh footprint with some pad expansion (instead of using the manufacturer's recommended measures), to be able to solder it by hand, so it seems, it was done good enough. I expected a lot of trouble soldering that.Here's a preview of the board, not fully populated yet - some components missing in my storage. I will make another update when the board will be finished and the programming work will begin.

author: xiayi79
author_rank: Newbie
timestamp: February 26, 2015, 04:29:10 am
content: I look for this board so long time, please finish it. I want do same board like this, but many problem can not be fix.

author: Yansi
author_rank: Super Contributor
timestamp: February 26, 2015, 03:11:56 pm
content: Sorry for the project being delayed, gotta a lot of higher priority work instead.Up to this day, I have tested the switchmode supply - seemed working well until I added some load. It is weak as a pick, voltage is dropping fast when load exceeds about 5mA. But I haven't investigated further the cause of it. Stay tuned and sorry for it taking so long...H.