Good Display ePaper for Arduino

Hi ZinggJM,

Thank you for your great work in your library.
I'm using ESP32 with Arduino and would like to know if there's any plan to add
GDEW075T7 7.5" b/w with 4 greyscale 800x480 ?

As currently is not supported in both GxEPD2 and 4G or am I wrong ? .
I also took a look in the STM32(with Keil) code example but seems like the code just support black and white too and the driver IL0371 confuse me as there's no 800X480 resolution support.
Thank YOU

@WegzZ,

GDEW075T7 7.5" b/w 800x480 is supported by GxEPD and GxEPD2.

It is not (yet) supported by GxEPD2_4G. I don't know how big the interest in this library is.

The controller of GDEW075T7 is GD7965 as per Good Display spec, a.k.a. WF8104, see page 49.

Jean-Marc

@mutexx,

The RESE resistor is a current measuring resistor in the booster circuit feedback loop.
I think the exact value is not important, the voltage generated is also measured and controlled.
A too high value does not work with the bigger panels, they need more current.
The old small panels use 3ohms to reduce the maximum current drawn, I think.

RESE To 0.47 Ω:
1.1.54 inch E-Paper Display: GDEW0154T8,GDEW0154Z17,GDEW0154Z04,GDEW0154C39,GDEW0154I9F
2.2.13 inch E-Paper Display: GDEW0213T5,GDEW0213Z16,GDEW0213I5F,GDEW0213C38,GDEW0213V7LT
3.2.6 inch E-Paper Display: GDEW026T0,GDEW026Z39
4.2.7 inch E-Paper Display: GDEW027W3 GDEW027C44
5.2.9 inch E-Paper Display: GDEW029T5,GDEW029Z10,GDEW029I6F
6.3.71 inch E-Paper Display: GDEW0371W7,GDEW0371Z80
7.4.2 inch E-Paper Display: GDEW042T2,GDEW042Z15,GDEW042C37
8.5.83 inch E-Paper Display: GDEW0583Z21,GDEW0583C64
9.7.5 inch E-Paper Display: GDEW075Z09,GDEW075C21

RESE To 3 Ω:
1.1.54 inch E-Paper Display:GDEH0154D67,GDEM0154E97LT
2.2.04 inch E-Paper Display: GDE021A1
3.2.13 inch E-Paper Display: GDEH0213D30LT,GDEH0213B73
4.2.9 inch E-Paper Display: GDEH029A1,GDEH029D56LT
5.5.83 inch E-Paper Display: GDEW0583T7
6.7.5 inch E-Paper Display: GDEW075T8

from http://www.e-paper-display.com/products_detail/productId=403.html

Jean-Marc

It’s strange why TTGO installed 0.48 Ohm if the recommendations clearly prescribed:

RESE To 3 Ω:
3.2.13 inch E-Paper Display: GDEH0213D30LT,GDEH0213B73

However, there are many revisions of both the boards and the screens, maybe I'm missing something. In any case, as I understand it, a resistance of 0.48 Ohm gives a higher panel current, power consumption does not bother me, I am concerned about the stability of the screen only.
I still hope that the problem was in the wrong library, GDEH0213B73 and GDE0213B72B have completely different controllers

resistance of 0.48 Ohm gives a higher panel current

Just slightly higher current spikes taken from the supply, I believe.

Hello,

I am getting started on a device with a GDEW029T5 display. The GoodDisplay website advertises it as a grasyscale capable device, but I cannot figure out how this is achieved.

I have build the gxEPD_sample from gitgub/gxEPD but there is no grayscaled image when shown on my device.

When looking at the device class code, it seems it only does B&W. Is this a limitation of the lib or of the device? Or am I missing something?

Regards,

@subsy

take a look at GitHub - ZinggJM/GxEPD2_4G and https://github.com/ZinggJM/GxEPD2_4G/blob/master/README.md

@ZinggIM : Perfect thank you.

This did the job after some fiddling here and there.

Is it expected that drawImage_4G should not ne called in the "page loop", and works sidesways, in terms of coords compared to the text coordinates for the display class?

The gxEDP API calls that filled with white before partial draw now fill with black. Is this expected, or I have a way of fixing this? Bacause this creates a heavy blinking effect when doing partial refresh.

Regards,

subsy:
@ZinggIM : Perfect thank you.

This did the job after some fiddling here and there.

Is it expected that drawImage_4G should not ne called in the "page loop", and works sidesways, in terms of coords compared to the text coordinates for the display class?

The gxEDP API calls that filled with white before partial draw now fill with black. Is this expected, or I have a way of fixing this? Bacause this creates a heavy blinking effect when doing partial refresh.

Regards,

Read How to use this forum - please read. and then edit your post to make it more pleasant to read!

:o

Hello,
I'm using GDEH0213B73 with ATmega328PB. This circuit is working good.

My sketch derived from PartialUpdateExample.ino.

When power loss in the paged partial update sequence, the drawn image (especially bitmap than updated number) disappears little by little.

On the other hand, In first BitmapExample1 display sequence, the picture keeps the dark enough to read after power loss.

Where is the diffrence? I guess sleep command has a problem.

@Theiler,

please always state which library you use, for me and for other readers, even if its obviously GxEPD from the name of the example.

The partial update sequence in the example purposely does not power off the panel driving booster circuit.
This is not good for power loss during this sequence.
But it is an example, you can change this.
Sleep, hibernate() is not uses in the GxEPD examples, as far as I remember. It is used in the GxEPD2_Example.

Jean-Marc

I'm using GxEPD Version 3.0.9. I understood that special driving operation enables partial refresh. It is also important to understand the technical limits. I will see GxEPD2 for reference.

Thank you for your advice.

Theiler

Please note the change in my previous post; it could be misunderstood.

GxEPD and GxEPD2 do power off the booster circuit after a full update, by design.

GxEPD and GxEPD2 do not power off the booster circuit after a partial update, by design,
because the next partial update could follow after a (few) second(s).

This is not a requirement of the partial update, a.k.a. differential refresh.

The booster circuit should be powered off before supply power loss, to avoid fading.
Power loss during refresh will result in "unpleasant" display and fading.

Power off the booster circuit to keep display content... It may cause current leak from capacitors during partial update operation...

I can avoid a power loss after partial update by my design. Because I'm not expecting a quick response to partial update.

Should I issue display.refresh(false) after the display content are determined in case of poser loss?

Now I'm using GxEPD2 Version 1.2.3

@Theiler,

I don't understand your post.

Call powerOff() in GxEPD2, powerDown() in GxEPD, after a partial update, if the next partial update doesn't occur soon, e.g. in less than a minute, or if you expect power loss to the display.

Do not forcibly switch off power to the display. Idle current is very low. Call hibernate() in GxEPD2 instead, then current drawn is negligible.

After power loss (to the display), the first refresh needs to be a full refresh. GxEPD2 takes care of that (forces the first refresh to be a full refresh), if init() was called, e.g. because of processor reset.

Use full refresh from time to time to avoid ghosting on e-papers with fast partial update (differential refresh).

Use full refresh for best picture retention, for uses such as shelf labels, door signs etc.

Jean-Marc

Sorry I seem to make a mistake about the drive method. EPD's display keeping capability and your GxEPD/GxEPD2 libraries are very helpful. I intend to see example code again.

Thank you for your advice.

Theiler

Hello,

So I have this question regarding grayscale image coordinates :

Below is my rendering function :

void showHello()
{
  
  display.setFullWindow();
    display.firstPage();
  do
  {
    display.setRotation(3); //even = portrait, odd = landscape
    display.fillScreen(GxEPD_WHITE);
    const GFXfont* f = &FreeSansBoldOblique24pt7b;
    display.setFont(f);
    //display.setTextColor(GxEPD_RED);  
    display.setFont(&FreeSerifItalic18pt7b);
    display.setCursor(0,22);
    display.print(Names[NameIndex]);
  } while (display.nextPage());
  display.refresh(false);
  display.epd2.drawImage_4G(image_data_InTest17,4, 40, 296-126, 46, 126 , false,false, true);
  
  
}

When using gxEPD2, the above source code works, but there is much blinking and there is something weird with coordinates:
The setcursor coords are relative to the upper left corner, while the image display display.epd2.drawImage_4G is relative to upper right corner. Is this expected or I am doing things wrong here?

Hi guys.

I was interested in e-ink displays with capacitive touch capabilities, so a few days ago I got:
GDEH0154D67-T (1.54") and GDEW027W3-T (2.7").
GxEPD2 supports GDEW027W3 so gonna start fiddling with it (hopefully this weekend).

ZinggJM, from a parallel thread I know that you've already ordered GDEH0154D67. Looking forward to seeing a new GxEPD2 release with GDEH0154D67 support.
Also, I really appreciate your work and wondering do you use some donate platform? (e.g. buymeacoffee)

Hi strange_v,

The GDEH0154D67 is on its way to me. I had asked for a free sample from Good Display, as the GDEP015OC1 is no longer available.

I do not take small donations :slight_smile: . But whoever would like to donate an e-paper display from Good Display that I don't have and support yet can send me a PM to ask for my address. I would then add support for that display to my libraries, if a demo code for that display is available.

Jean-Marc