GxEPD2: Displays that work with deep sleep and partial updates

Hello,

first of all I'd like to take the time to thank @ZinggJM for maintaining GxEPD2 and all the help and support that is given to us users. Maintaining an opensource project is hard work and takes a lot of dedication and is definitely something that shouldn't be taken for granted. So, thank you so much for all the work you put into this project - it is very much appreciated!

I have a similar problem than the one discussed here: GxEPD2: fuzzy display if partial update after deep sleep, flawless if partial update without. Also the solution that @ZinggJM provided (1K pullup resistor) works for me, but unfortunately my application now draws quite a lot of current in deep sleep mode (~2mA) - the majority of it consumed by the display. Is there something else I could do, to still use the partial update, but without the high current consumption?

Or alternatively: Is there a (2.9'') display out there that doesn't suffer from that issue? Currently, I am using a 2.9'' ePaper Display from Waveshare.

Thanks a lot!

Bernhard

Hi Bernhard, welcome to the forum, and thank you for the appreciation of my work!

If you use a processor with 3.3V IO, then you should avoid level converters for low power use. I recommend the DESPI-C02 connection module.

TZT (on AliExpress) has boards without level converters. And there are others, too.

If you use a 5V Arduino with 5V IO, then you still can use the DESPI-C02, but connected through level converters. Level converters of I2C kind use little power for HIGH state signals.
-jz-

1 Like

Thank you very much for your kind & fast reply!

I am using a 3.3V battery powered ESP32, so the DESPI-C02 would be perfectly fine in that regard.

I saw that the above DESPI-C02 link mentions a few compatible displays from Good Display at the bottom. Do they all work with deep sleep or does the display need to have something special for it to work? Or is that usually not a problem at all and Waveshare did just mess up the reset circuit?

Bernhard

All e-paper controllers I know have deep sleep capability.

Waveshare had used the RST pin to also switch off power to the board (level converter and connected display) for zero power use, But then the controller looses memory, and needs full refresh instead of differential (fast) refresh to continue.
There are newer Waveshare boards that have a separate PWR connection with the same purpose, and the same drawback.

1 Like

Got it, thanks a lot for taking the time and answer that in detail!

One last question (not sure if you maybe tried that one at some point): I am wondering if it is possible to remove the panel from my Waveshare board and use that together with the DESPI-C02 board. I haven't had a look at the board yet to see if there is any chance to remove the panel without destroying it - I guess they could have been glued on pretty well. Just out of curiosity: Do you have any experience with that?

edit: I checked the sourcecode (GxEPD2/src/epd/GxEPD2_290_T94_V2.h at 7cfc3671ef1802a067bb4c5e5ed4e2fb6e79abb6 · ZinggJM/GxEPD2 · GitHub) and found that the GxEPD2_290_T94_V2 (which I am currently using for my Waveshare 2.9'' epaper display) is using the GDEM029T94 panel.

So my idea would be to disconnect the panel from the Waveshare board and connect it to the DESPI-C02 connector board and then use the GDEM029T94 display type in the software. I guess that might work?

You could keep the panel glued to the Waveshare board, but disconnect the FPC connector and connect it to the DESPI-C02.

The story with these panels is a bit more complicated. See in GxEPD2_display_selection_new_style.h

//#define GxEPD2_DRIVER_CLASS GxEPD2_290_T94 // GDEM029T94  128x296, SSD1680, (FPC-7519 rev.b)
//#define GxEPD2_DRIVER_CLASS GxEPD2_290_T94_V2 // GDEM029T94  128x296, SSD1680, (FPC-7519 rev.b), Waveshare 2.9" V2 variant
//#define GxEPD2_DRIVER_CLASS GxEPD2_290_BS // DEPG0290BS  128x296, SSD1680, (FPC-7519 rev.b)

all three seem to be the same panel, they have the same inking on the flexible connector.
But only the GDEM029T94 from Good Display has the differential waveform table (for fast partial update) programmed in the controller OTP memory.
The other two are the same panel, presumably the DEPG029BS from DKE.
The same driver code is used for these two, which programs the missing waveform table into controller registers. As Waveshare uses this panel, you need to use one of these two driver classes with it.

1 Like

Got it! Many thanks for your patience and the knowledge sharing!

I already ordered the DESPI-C02 and can't wait to give it a try.

Thanks a lot!

Greetings from Vienna,
Bernhard

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.