ESP32, Waveshare 1.54 BW, GxEDP2 partial update is not working

Hi, I am new to ESP32 (or any micro controllers) and epaper displays, but I have BSC in electronics from 2005 and work as a frontend developer, so I do have some HW and SW engeneering knowlage.

I spent several weeks now learning and trying those with some success. However, no matter what I do, I can not make GxEDP2 library partial update work (even with the provided examples). I did have some success with the original Waveshare example (It did not work properly, but I can confirm that epaper display was indeed partially updating).

I am duing my Arduino in PlatformIO, but I don't think that has anything to do with my issue.

I probably am missing something or there has been some hardware update with 1.54 displays that the library is not taking into account yet.

I am using this constructor:
GxEPD2_BW<GxEPD2_154_D67, GxEPD2_154_D67::HEIGHT> display(GxEPD2_154_D67(/*CS=5*/ 9, /*DC=*/10, /*RST=*/11, /*BUSY=*/6)); // GDEH0154D67

The inking of the display: FPC-8101 REV.B
Waveshare 1.54inch e-Paper Module Rev2.1

As per the library instructions it says to use the special init() for "clever" reset. I could not find how to tell whether my display has this feature or not so I tried both init()'s with the same results.

That is what I am using:

display.init(9600, true, 2, false);

My board is ESP32-S3 Feather Adafruit

Here is a video of my display next to a console log with the No Paged Example example from the GxEPD2 library:

PS. I've started from using the GxEPD library first, and on _shutdown sequence the display lost about 50% of contrast. I could fix it in the library, by changing some data values, but the partial update did not work there as well so I opted for the GxEPD2.

That would be great if anyone could direct me on how I could approach debugging and fixing this issue.

Thanks a lot!
Vitally

@orgsys, Hi Vitally, welcome to the forum! Thank you for the information provided!

FPC-8101 REV.B tells me that the panel on your display most likely is from DKE, a DEPG0150BN.
The controller of this panel doesn't have a wavetable for differential refresh in OTP.
select

//#define GxEPD2_DRIVER_CLASS GxEPD2_150_BN  // DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1

in GxEPD2_display_selection_new_style.h.

You could have seen Waveshare EPD Partial Refresh/Update not working right near in the Forum Displays. There you see some more details.

Jean-Marc

1 Like

@ZinggJM Thank you for your help and your contribution. Thanks for that post with more info!

With the updated configuration all works now!

I wanted to ask, how do you know stuff about inking. I know you need inking to check on something, but what exactly do you check and how I can figure out configuration (driver selection taht you helped me with, for instance) in your library from the inking?

If lets say I buy another epaper display for another project, how can I figure out all the settings I need to set in your library for it to work properly?

Also I wanted to sugest to add some more help or may be some more links to this forums from your library. I can do a pull request with some updates, may be a Q&A page with some answers (and update it as more questions come), if you don't mind ofcourse. I think that will help a lot to everyone who is new to that area, and want to start using GxEPD2 library.

Thanks a lot!
Vitally

I have no answer to that question. There is constant change. I try to help in this forum.
My experience is that new users don't even read the README.md of my library.
In there are links to the topics in this forum I have intended for asking questions:

Supporting Arduino Forum Topics:

With the question feature of the forum you can find a lot of information there.
Or just do some reading of recent posts.

I had to disable the issues feature on GitHub, as it caused too much stress to me (I had worked in a project where "quality reports" were misused for enhancement requests).
There would be a discussions option in GitHub, but I decided against enabling it.
Note that I don't merge pull requests; see also CONTRIBUTING.md.

Users of my libraries have to live with what I provide - I think it is enough already - as all this is voluntary work. I don't change myself at my age.

Jean-Marc

I support only panels I have. So I can check and can compare inking. But this is not a simple one-to-one mapping, just a hint what it may be. Recent panels with just FPC-nnnn seem to be from DKE and have that limited OTP content. But panel manufacturers may buy e.g. the TFT glass complete with controller and connector, to build their panel. Even this may change.

@ZinggJM thank you for your help and resonses, all sounds fair to me.

Thanks again for the contribution!
Vitally

You could mark this topic solved. Thank you.

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