Skip to content

How pixels are driven in a parallel epaper with epdiy

Martin F. edited this page Oct 2, 2024 · 14 revisions

This page will be created in several days, in sections, that will be slowly build while the code is analyzed. The basics have been outlined by Petteri in blog EssentialScrap I will try to describe here on my own words and research how this is done with epdiy v7 (ESP32S3 version). If you find mistakes please send me your critics, corrections or anything you want to make your point to martin(AT)cale.es

It's important to know that the Clock CKV in epdiy is controlled using the RMT driver. Relevant code section in lcd_driver.c https://github.com/vroland/epdiy/blob/main/src/output_lcd/lcd_driver.c#L156-L162

Voltages are Applied though A Transistor Matrix

eink_panel electrical schematic

The Gate and Source drivers are shift registers, all electrical power (VCC) is 3.3 volts only, except the high voltages needed: The +15 and -15 volt are used to drive the pixels (Darker or Lighter) The other two voltages that you can see that are generated by TPS65185 and a helping circuit in epdiy v7: -20 and +22 V are to drive the Gate of each transistor pixel and let pass the +15 or -15 volt to the pixel itself.

Gate driver

The "Select row" driver is the easy one. Best explained in EssentialScrap:

How Gate driver works: You shift in a single "1" bit, and then "0" bits every time you want to advance to the next row. The "1" bit will shift through the register until it falls off the far end.

Gate driver in action (Video)

Source driver

This is the driver that actually drives the pixels itself applying the higher voltages. This part is for me the critical point about why this displays are particularly hard to drive:

to start a frame, you toggle GMODE (gate output enable) high and activate SPV (start pulse vertical, active low) for one CKV clock cycle. After that you toggle CKV for each row you want to advance. It seems that the gate driver is only on while the CKV is high, and also that the on-off ratio of CKV is important. It seems necessary to have CKV off much longer than it is on, otherwise the image leaks to other rows also.

This part that is documented with more details in Petteri's website is the one that defines how the image is displayed and particularly the grays.