Waveshare 2.9 Display V2 issue

I am using a Waveshare ePaper 2.9" but it is V2.

Too, I am running the GxEPD2_Example sketch.

The sketch run, the problem is that the display ignores the partial screen functions on the sketch. Only reacts to the functions with the line display.setFullWindow () ;. the functions with display.setPartialWindow (); are ignored for the display, even when the functions are executed.

The sketch sends the message: "fast partial mode" in the console if I put an message in the code, so I suppose that the display allows the partial refresh of the screen.

My question is if the GxEPD2 library supports the V2 of the Waveshare 2.9" ePaper display, as the test programs that Waveshare provides are different for V1 and V2 2.9" displays.

@LMario28, Hi Mario, welcome back to the forum!

The answer to your question is unknown, at least for me.

You should provide a link to your display, to the Waveshare website. So we would know exactly which display you have. E.g. b/w or 3 color, on a board with level converters and the "clever" reset circuit?

You could ask Waveshare, which panel (most likely from Good Display) is used, or which controller the panel uses.

You could report the inking on the flex connector of the panel, then I can compare with the ones I have.

If you report an issue with use of GxEPD2 with your e-paper display, I also need to know which processor/board you use, and which board you select to compile for.
And I need to know the constructor line you selected (or the driver class for new style).

Diagnostic output from serial monitor can also be helpful; in a code window please.

Note that the "clever" reset circuit needs use of shortened reset pulse. See README.md.

Jean-Marc

Hello Jean-Marc,

Thank you for you answer. Here is the information you need to help us.

-- The link is: https://www.waveshare.com/product/2.9inch-e-paper-module.htm

The only difference is that instead of saying the label on the back QC/07 says V2.

-- We are investigating which panel or controller uses the display.

-- The numbers on the flex connector are: FPC-7519revb.

-- I am using a Nano 33 IOT. I have selected and defined the next lines in the file "GxEPD2_display_selection_new_style.cpp" (using SAMD sections):

#define GxEPD2_DISPLAY_CLASS GxEPD2_BW

#define GxEPD2_DRIVER_CLASS GxEPD2_290_T94 // GDEM029T94  128x296, SSD1680

GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 10, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7));

-- Here is the "GxEPD2_MinimumExample" console output

_Update_Full : 3512755
_PowerOff : 140872
_PowerOn : 94598
_Update_Part : 94592
_Update_Part : 94584
_Update_Part : 94593
_Update_Full : 3512794
_PowerOff : 140873
_PowerOn : 94587
_Update_Full : 3513780
_PowerOff : 140878
_PowerOn : 94585
_Update_Full : 3512791
_PowerOff : 140869
_PowerOn : 94587
_Update_Full : 3512788
_PowerOff : 140873
_PowerOn : 94597
_Update_Full : 3512770
_PowerOff : 140870
_PowerOn : 94596
_Update_Full : 3512790
_PowerOff : 140880
_PowerOn : 94589
_Update_Full : 3512804
_PowerOff : 140879
_PowerOn : 94594
_Update_Part : 94581
_Update_Part : 94595
_Update_Part : 94587
_Update_Part : 94593
_Update_Part : 94588
_Update_Part : 94596
_Update_Part : 94594
_Update_Part : 94594
_Update_Part : 94600
_Update_Part : 94592
_Update_Part : 94589
_Update_Part : 94601
_Update_Part : 94591
_Update_Part : 94595
_Update_Part : 94596
_Update_Part : 94586
_Update_Part : 94596
_Update_Part : 94588
_Update_Part : 94597
_Update_Part : 94595
_Update_Part : 94593
_Update_Part : 94588
_Update_Part : 94583
_Update_Part : 94598
_Update_Part : 94589
_Update_Part : 94579
_Update_Part : 94583
_Update_Part : 94583
_Update_Part : 94585
_Update_Part : 94591
_Update_Part : 94593
_Update_Part : 94596
_Update_Part : 94600
_Update_Part : 94590
_Update_Part : 94596
_Update_Part : 94594
_Update_Part : 94589
_Update_Part : 94592
_Update_Part : 94591
_Update_Part : 94585
_Update_Part : 94594
_Update_Part : 94601
_Update_Part : 94596
_Update_Part : 94600
_Update_Part : 94597
_Update_Part : 94596
_Update_Part : 94601
_Update_Part : 94591
_Update_Part : 94595
_Update_Part : 94588
_Update_Part : 94597
_Update_Part : 94584
_PowerOff : 140882
_PowerOn : 94585
_Update_Full : 3512809
_PowerOff : 140872
_PowerOn : 94586
_Update_Full : 3513779
_PowerOff : 140867
_PowerOn : 94583
_Update_Full : 3513690
_PowerOff : 140878
setup done

Luis M.

@LMario28, Hi Luis,

thank you for the information.

My GDM029T94 has the same inking. My panel supports differential refresh, fast partial update.

Your _Update_Part times are way too short, should be about 0.5 seconds.
Most likely the waveform table set for refresh mode 2 is empty (in the controller OTP).

You should verify missing fast partial update with the Waveshare demo code, and then ask for replacement.

You can use your display with slow partial refresh, if you set the attribute hasFastPartialUpdate to false.

Jean-Marc

Added: Good Display has a GDEY029T94 panel, with same specifications. But different inking.
I will check their partial update demo code for differences.

Update: hasFastPartialUpdate to false has no effect (not implemented this way in this class).

use

  _writeCommand(0x22);
  _writeData(0xf4);

in GxEPD2_290_T94::_Update_Part().

@LMario28

I have taken a look at the Waveshare library driver for epd2in9_V2.
This driver has and loads a partial update waveform table.
There is a unsigned char WF_PARTIAL_2IN9[159].

Conclusion: GxEPD2 supports the GDEM029T94 panel from Good Display, but not the 2.9" b/w V2 from Waveshare.

If anyone wants the Waveshare 2.9V2 supported, then he either has to donate that display, or urge Waveshare to send me a free sample.

I am determined to not buy this display. I am willing to do some voluntary work, but not if I have to buy a device I am not interested in for personal use.

Jean-Marc

Hello Jean-Marc,

Thank you very much for your very professional support.

I already mentioned the situation to the project manager. I am waiting to see what decision he makes.

Luis

@LMario28

In the meantime I did try to connect Waveshare sales, to ask if I can get a free sample of the 2.9" b/w board with my next order. I didn't even get an answer.

I have to apologize. The answer was in my spam folder, but Outlook didn't show it as nonempty.

So I decided to order the ESP32 e-paper driver boards from a different shop.
I selected SpotPear; they have a good rating.

The Waveshare board 2.9" b/w will not be supported by GxEPD2.
Even if my tests with 2.9inch Touch e-Paper Module for Raspberry Pi Pico 2.9 inch ePaper display screen 296×128 Black / White may lead to success.

Jean-Marc

HI Jean-Marc,

I can donate you a board, what is the process to do this? Also where can we find a list of fully supported boards?

@kaangoksal, thank you for the offer.

I could work for about 10 minutes for the price of that board. Engineer hours are expensive in Switzerland. As Waveshare doesn't appreciate my work, I will not spend time on Waveshare boards anymore.

There is a list of panels supported in README.md, but no list of supported Waveshare boards.

Jean-Marc

1 Like

Jean-Marc, I appreciate all the work and support you are giving for this project, it really matters. How can we donate to the project? Should I pm you for the details? I respect your decision to not to spend time on the board as well.

I played with Waveshare 2.9 BW board a little bit, it looks like there is something weird going on with

display.setPartialWindow(0, 0, display.width(), display.height());

when you call this it works for the first time you'll display a page, but afterwards you cannot print anything new nor do a full refresh, I think there is a minor problem about that function. All full window refresh work with this

display.setFullWindow();

I'm using this line to start it up

GxEPD2_BW<GxEPD2_290_T94, GxEPD2_290_T94::HEIGHT> display(GxEPD2_290_T94(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM029T94
# and in setup()

 display.init(115200);

I respect your decision on not willing to support this board since they don't value your time. I'm willing to donate $$ for the board or donate $$ just for the sake of supporting the project (no work requested)

I'm planning to order this board:

It is a GDEW029T5D, so hopefully partial refresh work on this board!

Thanks,
Kaan

GDEW029T5D is supported since Version 1.3.2. Partial update works.

Addition: Sorry for the short answer. I don't want to waste more time on this.
The 2.9inch Touch e Paper Module for Raspberry Pi Pico 2.9 inch ePaper display screen 296×128 Black / White|Demo Board| - AliExpress in post #7 may have the same panel.
I will - of course - verify the behavior, and try to get it working. Maybe I will add my version to a branch, but not to the official version of the library. Unless positive actions from Waveshare.
Added: The answer from Waveshare got into my spam folder. Sorry.

Jean-Marc

But the seller no longer has it available and asked for order cancellation.

I will get a free sample 2.9" b/w board from Waveshare with my order of ESP32 e-paper driver boards.

I am sorry for the confusion I caused.

And I feel grateful for the contact I got with the Waveshare Sales Team.

Jean-Marc