Arduino Forum

Using Arduino => Displays => Topic started by: ZinggJM on Nov 19, 2016, 04:54 pm

Title: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 19, 2016, 04:54 pm
Hello, I searched this Forum for ePaper on Arduino and got the impression, there is not much meaningful information available yet. I found a supplier that is very helpful also for small and hobby users on AliExpress, see e.g.

https://www.aliexpress.com/item/4-2-inch-SPI-E-paper-Display/32691171510.html.

https://www.aliexpress.com/store/group/E-Paper/600281_210184876.html (https://www.aliexpress.com/store/group/E-Paper/600281_210184876.html)

I have done some initial hobbyist work for my IoT sensor network, to display slowly changing temperature and humidity values, on several of their displays. The displays I use are connected through SPI, using their DESTM-S2 connection board.

See also related topic Waveshare e-paper displays with SPI (http://forum.arduino.cc/index.php?topic=487007.0) and library https://github.com/ZinggJM/GxEPD (https://github.com/ZinggJM/GxEPD)

Please give me a hint, if I overlooked important existing information for this topic on this forum.

Addition: now I know a lot more about e-paper displays from Good Display. See following posts.
And Good Display has updated their web-page to provide actual demo code for their e-paper displays:

Now schematics of the demo boards are available as well! Thank you, Good Display.

http://www.good-display.com/download_list/downloadcategoryid=35&isMode=false.html (http://www.good-display.com/download_list/downloadcategoryid=35&isMode=false.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 01, 2016, 11:29 am
GDEW042T2 : 4.2" 400 * 300 black/white e-Paper from Good Display

https://www.aliexpress.com/store/group/E-Paper/600281_210184876.html (https://www.aliexpress.com/store/group/E-Paper/600281_210184876.html)

I received my 2 displays and I have created my GDEW042T2 display class for use in my IoT project.

My display class is a subclass of Adafruit_GFX, to have graphics and text rendering.
It needs roughly 20kB available RAM to buffer the black/white image.
ESP8266 or STM32 systems have just enough free RAM, e.g. Arduino Due.
I used Wemos D1 mini, STM32F103RB-Nucleo, and some STMF103C8T6-mini systems.

I share this display class with you, as a possible reference for your evaluation or work.

The actual version is on GitHub (https://github.com/ZinggJM/GxEPD),
I try to provide limited support and answers in this topic.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 15, 2017, 08:55 am
Dalian Good Display Co., Ltd. have streamlined their shops and offerings on AliExpress.

For details see their company web-page:

http://www.good-display.com/ (http://www.good-display.com/)

Their shop on AliExpress is:

https://www.aliexpress.com/store/600281 (https://www.aliexpress.com/store/600281)

More offerings can be found in their internet shop (which accepts PayPal):

http://www.buy-lcd.com/ (http://www.buy-lcd.com/)

I recommend their friendly and helpful sales staff (see their "Service" subpage).

I plan to put an updated library with support also for GDEW075T8 on GitHub.

Jean-Marc Zingg
Title: Re: Good Dispay ePaper for Arduino
Post by: neutrinos on May 24, 2017, 09:30 am
Hello,
Maybe you can help me ?
http://forum.arduino.cc/index.php?topic=478882.0
Thank you.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 24, 2017, 10:30 am
Hello,
Maybe you can help me ?
http://forum.arduino.cc/index.php?topic=478882.0
Thank you.
How do you expect to get an answer, if the link in your post produces side-effects.

I saw your post, but I get an error when I open the only link in your post.
And after that I get strange behavior in my browser and need to restart it to be able to post.

So I won't be able to help unless you provide useful information.

My experience with e-paper is only with Good Display and Waveshare 4.3 e-paper.
Title: Re: Good Dispay ePaper for Arduino
Post by: neutrinos on May 29, 2017, 07:51 am
How do you expect to get an answer, if the link in your post produces side-effects.

I saw your post, but I get an error when I open the only link in your post.
And after that I get strange behavior in my browser and need to restart it to be able to post.

So I won't be able to help unless you provide useful information.

My experience with e-paper is only with Good Display and Waveshare 4.3 e-paper.
Thank you very much.
Link goes to a free public website stocking pictures,
http://fr.tinypic.com/view.php?pic=9k2ddi&s=9
and I have added the same picture in best resolution in attachment
http://forum.arduino.cc/index.php?action=dlattach;topic=478882.0;attach=212812

I do not know witch sort of e-paper it is.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 29, 2017, 09:36 am
What you seem to have is a Electronic Shelf Label.

How did you get it? Is this item missing somewhere?

Shelf labels are either bought in considerable quantities for shop use,
or as evaluation units for developers of shop supplies.
For the second case, the supplier certainly provides any support needed,
but maybe for a rather high price.

The only help I can provide is a link to iflabel.com, aka Dalian Good Display.
So you can compare your item to these shelf labels.

http://www.iflabel.com/ (http://www.iflabel.com/)

I will not try to open the link to your picture, it seems the site uses dubious cookies.

Jean-Marc Zingg
Title: Re: Good Dispay ePaper for Arduino
Post by: neutrinos on May 30, 2017, 11:19 am
I will not try to open the link to your picture, it seems the site uses dubious cookies.
Jean-Marc Zingg
You can download  the same picture in best resolution in attachment
http://forum.arduino.cc/index.php?action=dlattach;topic=478882.0;attach=212812

What you seem to have is a Electronic Shelf Label.
How did you get it? Is this item missing somewhere?
Jean-Marc Zingg
This is not an Electronic Shelf Label, there is no radio or infrared receiver.
It is a preprogrammed advertising label that always displays the same rotating message (under 3.3V) for an article.
As the article was modified, the commercial change the advertissing label by an other displaying a new rotating message. He wanted to discard this one that I disassembled for maybe reuse.
Title: Re: Good Dispay ePaper for Arduino
Post by: alessandropiola on Jun 12, 2017, 12:22 pm
Hi,
is possible to have a photo of connection between E-paper and ESP?

Tks
Alessandro

GDEW042T2 : 4.2" 400 * 300 black/white e-Paper from Good Display

https://www.aliexpress.com/item/4-2-inch-SPI-E-paper-Display/32691171510.html

I received my 2 displays and I have created my GDEW042T2 display class for use in my IoT project.

My display class is a subclass of Adafruit_GFX, to have graphics and text rendering.
It needs roughly 20kB available RAM to buffer the black/white image.
ESP8266 or STM32 systems have just enough free RAM, e.g. Arduino Due.
I used Wemos D1 mini, STM32F103RB-Nucleo, and some STMF103C8T6-mini systems.

I share this display class with you, as a possible reference for your evaluation or work.
However, I have too many interesting things to experiment with, and therefore can't provide support.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 12, 2017, 02:02 pm
Yes, good luck.

Jean-Marc

(http://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=215205)

(http://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=215207)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 12, 2017, 02:37 pm
An updated version of my e-paper display classes can be found on GitHub:

https://github.com/ZinggJM/GxEPD (https://github.com/ZinggJM/GxEPD)
Title: Re: Good Dispay ePaper for Arduino
Post by: alessandropiola on Jun 12, 2017, 02:59 pm
thank you for the support.
I'll buy a e-paper and try to use with NodeMCu V3.
;-)
Title: Re: Good Dispay ePaper for Arduino
Post by: alessandropiola on Jun 12, 2017, 09:26 pm
You measured the power consumption of the board?

thank you for the support.
I'll buy a e-paper and try to use with NodeMCu V3.
;-)

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 21, 2017, 01:40 pm
An updated version of my e-paper display classes can be found on GitHub:

https://github.com/ZinggJM/GxEPD (https://github.com/ZinggJM/GxEPD)
Added support for HD E-Paper displays from Dalian Good Display Inc. with parallel interface.

GDE060BA 6 inch 800 x 600 pixel 4 gray level

GDEW080T5 8 inch 1024 x 768 pixel 4 gray level

These display can be used with the red DESTM32-L evaluation board, it has 1MB FSMC SRAM on board.
The library classes for these display can be used with the STM32GENERIC package for Arduino IDE.
Title: Re: Good Dispay ePaper for Arduino
Post by: i0207 on Jun 25, 2017, 12:12 pm
Perfect experience!!!! Thank you very much! Is there any experience to connect Arduino with Good Display? May be anyone can join a conection scheme? Thanks a lot!
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 25, 2017, 02:32 pm
The connection scheme for DESTM-S2 to any Arduino should be clear from the heading description of the source files. Standard SPI connections used, plus busy line and BS to GND. Caution: 3.3V supply, use series resistor for signal lines on 5V Arduino.

However, only Arduino Due has enough RAM for use with buffer for Adafruit_GFX.
Else only drawBitmap() can be used; modify source to remove buffer.

If you state what you would like to do in more detail, I could answer with more detail.

Jean-Marc

P.S. I do not answer personal mail usually.
Title: Re: Good Dispay ePaper for Arduino
Post by: i0207 on Jun 26, 2017, 04:57 pm
One more question. Good display has adapter for 24-pin 0.5 mm (step) e-ink display. All of them with low resolution quality. HD e-ink display by Good Display has 32pin connector. I think that 24 pin connector is not realy good for it. I wrote to the manufacturer maybe they has small(compact) solutions... Maybe anyone know how to connect 32 pin display to arduino or Wemos D1 mini.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 26, 2017, 08:17 pm
The difference is SPI versus parallel connection. And screen resolution, which means more RAM needed for HD display to buffer e.g. bitmaps rendered by Adafruit_GFX.

I have added HD e-paper support to my GxEPD library, available on GitHub. For more information see there.

https://github.com/ZinggJM/GxEPD (https://github.com/ZinggJM/GxEPD)

Jean-Marc

P.S. and of course ESP8266 has not enough pins for parallel connection. Arduino Due has not enough RAM, and to produce the special voltages of +15, -15, +22, -22 with the correct power On timing is not easy.

See also e.g.:

http://www.good-display.com/download_detail/downloadsId=232.html (http://www.good-display.com/download_detail/downloadsId=232.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 02, 2017, 01:22 pm
Added display classes for Good Display 1.54 and 2.13 e-paper displays GDEP015OC1 and GDE0213B1.
And an example with SHT31 temperature and humidity sensor.

The GxGDEP015OC1 and GxGDE0213B1 classes can also be used for the Waveshare SPI e-paper display modules 1.54 and 2.13, which are easier to connect to Arduinos (with enough RAM, ~5kB).

https://waveshare-developmentkit.aliexpress.com/store/group/e-Paper-E-ink/216233_259057242.html (https://waveshare-developmentkit.aliexpress.com/store/group/e-Paper-E-ink/216233_259057242.html)

(http://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=217398)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 05, 2017, 09:22 am
The connection scheme for DESTM-S2 to any Arduino should be clear from the heading description of the source files. Standard SPI connections used, plus busy line and BS to GND. Caution: 3.3V supply, use series resistor for signal lines on 5V Arduino.
Code: [Select]
  DESTM32-S2 pinout (top, component side view):
       |-------------------------------------------------
       |  VCC  |o o| VCC 5V
       |  GND  |o o| GND
       |  3.3  |o o| 3.3V
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  MOSI |o o| CLK
       |  DC   |o o| D/C
       |  RST  |o o| BUSY
       |  nc   |o o| BS
       |-------------------------------------------------


No, the heading description is not clear enough. I should provide a drawing, but this is not my strength.

Note that the 5V connection is not needed. More information can be found here:

http://www.buy-lcd.com/index.php?route=product/product&product_id=56475&search=DESTM32-S2 (http://www.buy-lcd.com/index.php?route=product/product&product_id=56475&search=DESTM32-S2)

I add a relevant part of it here for the jumper position:

(http://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=217771)

This pinboard DESTM32-S2 is used for 1.54 inch, 2.04 inch, 2.13 inch , 2.7 inch, 2.9 inch, 4.2 inch, 7.5 inch E-paper display.
Position1.While shorting RESE and 3.0Ω resistor, this model is suitable for the following E-Paper displays:
1.1.54 inch E-Paper Display: GDEP015OC1, and GDEW0154Z04
2.2.04 inch E-Paper Display: GDE021A1
3.2.13 inch E-Paper Display: GDEW0213B1
4.2.9 inch E-Paper Display: GDEH029A1
5.7.5 inch E-Paper Display: GDEW075T8 and GDEW075Z09
Position 2.While shorting 0.47Ω resistor and RESE, this mode is suitable for the following E-Paper displays:
1.1.54 inch E-Paper Display: GDEW0154T8
2.2.13 inch E-Paper Display: GDEW0213Z16
3.2.7 inch E-Paper Display: GDEW027W3 and GDEW027C44
4.2.9 inch E-Paper Display: GDEW029T5 and GDEW029Z10
5.4.2 inch E-Paper Display: GDEW042T2 and GDEW042Z15

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 13, 2017, 12:20 pm
I just discovered the promotion for 4.3inch 800x600 HD e-paper display GDE043A2

http://www.buy-lcd.com/index.php?route=product/product&path=2897_8369&product_id=12515 (http://www.buy-lcd.com/index.php?route=product/product&path=2897_8369&product_id=12515)

edit: the promotion can be misleading: the price is per piece, not per lot.

and from first impression and experience, the 6inch e-paper is better!

The demo code shows some degradation of the white parts just seconds after update,
and my first attempt with my adapted display class is worse, maybe caused by timing issues.

end of edit.

This display is easy to use with the demo board DESTM32-L

http://www.buy-lcd.com/index.php?route=product/category&path=10598&page=2 (http://www.buy-lcd.com/index.php?route=product/category&path=10598&page=2)

which has the special connector for this display, the special voltages the display needs for update,
and a big 1MB FSMC SRAM on board. So the price of this board is justified, but still rather high (small production quantities).

I will add my ideas for a hobby solution with a black STM32F407ZE board.

https://www.aliexpress.com/item/Free-shipping-STM32F407ZET6-development-board-M4-STM32F4-core-board-arm-development-board-cortex-M4/32689262341.html (https://www.aliexpress.com/item/Free-shipping-STM32F407ZET6-development-board-M4-STM32F4-core-board-arm-development-board-cortex-M4/32689262341.html)

This board has smd solder pads for FSMC SRAM on the back side. With smd soldering experience it should be possible to add the SRAM. Or the manufacturer could be motivated to produce a variant with the SRAM added.

Then we would need a connection board with the ATX526124 connector and the voltage generators, e.g. for connection to the FSMC TFT connector.

I found a connection board for the connector so far, not sure if I will be able to solder the connector to it:

https://www.aliexpress.com/item/24-Pin-0-4mm-Pin-Space-Double-Row-Adapter-Board-FPC-Universal-PCB-Plate-Converter-24pin/32779467002.html (https://www.aliexpress.com/item/24-Pin-0-4mm-Pin-Space-Double-Row-Adapter-Board-FPC-Universal-PCB-Plate-Converter-24pin/32779467002.html)

The 6inch e-paper display has a 0.5mm pitch connector; slightly easier to solder to a board.

Could be a (small) business opportunity for someone to implement these ideas.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 15, 2017, 10:03 am
The demo code shows some degradation of the white parts just seconds after update,
and my first attempt with my adapted display class is worse, maybe caused by timing issues.

The reason for this may be a wrong VCOM value setting of my DESTM32-L board for the display.
I noticed, every e-paper for the DESTM32-L has a small paper sticker on or near the connector, with a value printed on it.  Every value is slightly different, e.g. -1.90, -2.00, -2.30. I had measured a VCOM value of -3.8 on my demo board, active during update. There is a small trimm-pot on the board.

So for optimum update result the value printed on the sticker should be set on the demo board with the trim-pot, measured during update on the test point near the 6inch ATX connector.

This information seems to be missing in the specification/instruction pdf for the demo board.

The GDE043A2 display may be more susceptible for non-optimal VCOM values; I will verify this.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: fr on Jul 16, 2017, 09:26 am
I just discovered https://www.aliexpress.com/store/product/200x200-1-54inch-E-Ink-display-module-Without-PCB-Communicate-via-SPI-interface-Supports-various-controller/216233_32811540997.html?spm=2114.12010612.0.0.X3fyD4 (https://www.aliexpress.com/store/product/200x200-1-54inch-E-Ink-display-module-Without-PCB-Communicate-via-SPI-interface-Supports-various-controller/216233_32811540997.html?spm=2114.12010612.0.0.X3fyD4)
A whole in one piece so easy to integrate
A spi connector

Would it be possible to run it on a https://www.aliexpress.com/item/MH-ET-LIVE-D1-mini-ESP32-ESP-32-WiFi-Bluetooth-Internet-of-Things-development-board-based/32815530502.html?spm=2114.search0104.3.41.M21QjZ&ws_ab_test=searchweb0_0,searchweb201602_1_10152_10065_10151_10068_10084_10083_10305_10080_10304_10082_10306_10081_10177_10110_10137_10111_10302_10060_10112_10113_10155_10114_10154_438_10056_10055_10054_10182_10059_10184_100031_10099_10078_10079_10210_10103_10073_10102_10189_10052_10053_10142_10107_10050_10051-10050,searchweb201603_3,ppcSwitch_3&btsid=2a599abd-3aef-4e3d-9481-ff29ca78b07f&algo_expid=9557be83-959e-49ec-95cf-27e0c6e92a08-8&algo_pvid=9557be83-959e-49ec-95cf-27e0c6e92a08 (https://www.aliexpress.com/item/MH-ET-LIVE-D1-mini-ESP32-ESP-32-WiFi-Bluetooth-Internet-of-Things-development-board-based/32815530502.html?spm=2114.search0104.3.41.M21QjZ&ws_ab_test=searchweb0_0,searchweb201602_1_10152_10065_10151_10068_10084_10083_10305_10080_10304_10082_10306_10081_10177_10110_10137_10111_10302_10060_10112_10113_10155_10114_10154_438_10056_10055_10054_10182_10059_10184_100031_10099_10078_10079_10210_10103_10073_10102_10189_10052_10053_10142_10107_10050_10051-10050,searchweb201603_3,ppcSwitch_3&btsid=2a599abd-3aef-4e3d-9481-ff29ca78b07f&algo_expid=9557be83-959e-49ec-95cf-27e0c6e92a08-8&algo_pvid=9557be83-959e-49ec-95cf-27e0c6e92a08)
With which library ?
connection ?


I know that the refresh time is quite slow but I did not find the way to know if by refreshing only part of the screen one could read a count of seconds
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 16, 2017, 11:59 am
I have experience with this display with an Wemos D1 mini ESP8266 system.
I do not yet have a ESP-WROOM-32 system, but as far as I know it contains a ESP8266, and its SPI should be able to connect to this display.

I would not recommend to try to update every second, as full screen update is ~1s.

For bitmap display and for sequential text output the Waveshare library can be used.

For graphics and text I recommend my GxEPD library that uses Adafruit_GFX.

See also:

http://forum.arduino.cc/index.php?topic=487007.0 (http://forum.arduino.cc/index.php?topic=487007.0)

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Lexander24 on Jul 17, 2017, 05:25 am
Hello, thx for your post.
I want to do what you do.
I have WeMos D1 R2 and 2.9" e paper display with adaptor board.

i have a question, i try your GxEPD_SPI_TestExample but the display only show black border and white screen. Can you tell me where i'm wrong?

other things, can you tell me how to connecting board with wemos? the information not clear enough
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 17, 2017, 06:55 am
Hi

I assume you have the bare 2.9inch e-paper display and the DESTM32-S2 adapter board.
I only have the 1.54inch as bare display, but I have the Waveshare 2.9inch e-paper display.

From my Waveshare SPI topic http://forum.arduino.cc/index.php?topic=487007.msg3337120#msg3337120 (http://forum.arduino.cc/index.php?topic=487007.msg3337120#msg3337120)

IoT example wiring 1.54inch e-Paper to Wemos D1 Mini:

BUSY->D6(MISO), RST->D4, DC->D3, CS->D8(SS), CLK->D5(SCK), DIN->D7(MOSI), GND->GNG, 3.3V->3.3V

SHT_SCL->D1, SHT_SDA->D2, 5V->300k->A0, D0->0.1k->RST(deep sleep wakeup)

BUSY wired to MISO to free D2 for 2-wire SHT31

2.9inch example:

BUSY->D2, RST->D4, DC->D3, CS->D8(SS), CLK->D5(SCK), DIN->D7(MOSI), GND->GND, 3.3V->3.3V

BUSY->D2, RST->D4, DC->D3, CS->D8(SS), CLK->D5(SCK), DIN->D7(MOSI), GND->GND, 3.3V->3.3V

you need to connect BS to GND in addition, and make sure the jumper is set correct for your display.

Title: Re: Good Dispay ePaper for Arduino
Post by: Lexander24 on Jul 17, 2017, 07:07 am
Yes SIR,
I use https://www.aliexpress.com/item/2-9-inch-eink-display-with-Connector-Board/32812881045.html?spm=a2g0s.9042311.0.0.gvFATX

Thx for your help, now i can show the font to the display.

I have other question,
1. How to convert image to show at display?
    i try using internet converter and the image show very random.
2. Are you ever try upload image via WiFi (ESP8266)?

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 17, 2017, 08:04 am
Yes SIR,
I use https://www.aliexpress.com/item/2-9-inch-eink-display-with-Connector-Board/32812881045.html?spm=a2g0s.9042311.0.0.gvFATX

Thx for your help, now i can show the font to the display.

I have other question,
1. How to convert image to show at display?
    i try using internet converter and the image show very random.
2. Are you ever try upload image via WiFi (ESP8266)?


Thank you for the feedback. So https://www.aliexpress.com/item/2-9-inch-eink-display-with-Connector-Board/32812881045.html (https://www.aliexpress.com/item/2-9-inch-eink-display-with-Connector-Board/32812881045.html) works ok.

1. have you asked for the documentation? Image converter and its usage is explained there.
    see also http://www.good-display.com/download_index.html (http://www.good-display.com/download_index.html)

2. no, but should be quite easy. May try this and SPIFS later.

Title: Re: Good Dispay ePaper for Arduino
Post by: Lexander24 on Jul 18, 2017, 07:44 am
1. have you asked for the documentation? Image converter and its usage is explained there.
    see also http://www.good-display.com/download_index.html (http://www.good-display.com/download_index.html)

For image converter after searching and trying the best software that complatible with your module was Image2Lcd
here is the link for dowload : https://www.dropbox.com/sh/9o65oqp8hk5j20c/AACptq14IQnU5fI5ao_theKPa?dl=0


Quote
2. no, but should be quite easy. May try this and SPIFS later.


can you give me some explanation about update the picture using Wi-Fi? because i didn't found any work example upload code OTA to esp8266

other question :
how to show red colour on the display? i have other 2.9" display that can show red color.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 18, 2017, 01:40 pm
Image2lcd is the image converter mentioned in the Good Display documentation.
So far I use e-paper displays for text only, so I have no experience with Image2lcd.

As a consequence, I currently transfer text only over WiFi, by requesting a pure text page from my ESP8266 based IoT webserver. The ESP8266 Arduino package comes with WiFi examples, so you should be able to achieve picture download yourself.

As you can see in my GxEPD library, I have one e-paper display with black/white/red so far.
I do not (yet) intend to use a black/white/red 2.9inch e-paper in my IoT network, so I have no display class for it. For every new e-paper display I need to start from a demo example, to know the wave table to use (aka LUT table) in the initialization code. AFAIK Good Display intends to add actual demo code examples to their download page. You can ask for the demo code for your red 2.9 display, and use it to create a display class, taking the GxGDEW027C44 as an example.
Title: Re: Good Dispay ePaper for Arduino
Post by: beee on Jul 18, 2017, 02:40 pm
Please add 4.2 inch 3 color: GDEW042Z15 too. (2.9 inch 3 color GDEW029Z10 also of course) Thank you.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 18, 2017, 03:41 pm
Please add 4.2 inch 3 color: GDEW042Z15 too. (2.9 inch 3 color GDEW029Z10 also of course) Thank you.
Thank you for your interest. I am willing to do some unpaid work, but I will only invest in hardware I want to use myself. But you can order interesting hardware from Good Display to be sent to me, they have my address, and I will try to create a display class for it, and keep the hardware.

Jean-Marc Zingg
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 28, 2017, 11:29 am
Good Display Sales Promotion 28. July 2017, 11 days on AliExpress.

Please note the sales promotion for the Demo Boards. Good chance to get started with e-paper displays!

For the high resolution e-paper displays there is no easy alternative to the DESTM32-L, except the Waveshare 4.3 e-paper display.
I do prefer the 6 inch and 8 inch e-paper displays, so I use the DESTM32-L for these.

https://www.aliexpress.com/store/group/E-paper-Demo-only/600281_511864504.html (https://www.aliexpress.com/store/group/E-paper-Demo-only/600281_511864504.html)

http://www.buy-lcd.com/index.php?route=product/product&path=10615_10623&product_id=50479 (http://www.buy-lcd.com/index.php?route=product/product&path=10615_10623&product_id=50479)

http://www.buy-lcd.com/index.php?route=product/product&path=10615_10621&product_id=50478 (http://www.buy-lcd.com/index.php?route=product/product&path=10615_10621&product_id=50478)

Good Display has updated their web-page to provide actual demo code for their e-paper displays:

http://www.good-display.com/download_list/downloadcategoryid=35&isMode=false.html (http://www.good-display.com/download_list/downloadcategoryid=35&isMode=false.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 03, 2017, 06:20 am
Class GxGDEW075Z09 for GDEW075Z09 7.5inch black/white/red e-paper display is also supported by the GxEPD library, thanks to "Noobidoo".
Title: Re: Good Dispay ePaper for Arduino
Post by: guy1ziv2 on Aug 07, 2017, 11:26 am
This is a very useful topic folks!

Does anyone know where to find the schematics of the connector board DESTM32-S2 ?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 07, 2017, 01:32 pm
This is a very useful topic folks!

Does anyone know where to find the schematics of the connector board DESTM32-S2 ?
I have not found this schematics, and have not asked for it. Sales Support of Dalian Good Display is very helpful for such enquiries.

The "reference circuit", which corresponds largely to the DESTM32-S2 is part of every SPI e-paper specification,
see e.g. http://www.good-display.com/downloadsfront.do?method=picker&flag=all&id=9ee72555-13d0-4d79-892d-898c83a39f3e&fileId=468&isDownloadPermissions=true&v=2.zip (http://www.good-display.com/downloadsfront.do?method=picker&flag=all&id=9ee72555-13d0-4d79-892d-898c83a39f3e&fileId=468&isDownloadPermissions=true&v=2.zip)

Addendum: updated connection scheme for DESTM32-S2:

   DESTM32-S2 pinout (top, component side view):
       |-------------------------------------------------
       |  VCC  |o o| VCC 5V, not needed
       |  GND  |o o| GND
       |  3.3  |o o| 3.3V
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  MOSI |o o| CLK=SCK
       | SS=DC |o o| D/C=RS    // Slave Select = Device Connect |o o| Data/Command = Register Select
       |  RST  |o o| BUSY
       |  nc   |o o| BS, connect to GND
       |-------------------------------------------------

Code: [Select]
/************************************************************************************
   class GxGDE0213B1 : Display class example for GDE0213B1 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com

   based on Demo Example from Good Display, now available on http://www.good-display.com/download_list/downloadcategoryid=34&isMode=false.html

   Author : J-M Zingg

   modified by :

   Version : 2.0

   Support: minimal, provided as example only, as is, no claim to be fit for serious use

   connection to the e-Paper display is through DESTM32-S2 connection board, available from Good Display

   DESTM32-S2 pinout (top, component side view):
       |-------------------------------------------------
       |  VCC  |o o| VCC 5V, not needed
       |  GND  |o o| GND
       |  3.3  |o o| 3.3V
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  nc   |o o| nc
       |  MOSI |o o| CLK=SCK
       | SS=DC |o o| D/C=RS    // Slave Select = Device Connect |o o| Data/Command = Register Select
       |  RST  |o o| BUSY
       |  nc   |o o| BS, connect to GND
       |-------------------------------------------------
*/


I hope this clarification helps.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 24, 2017, 04:31 pm
This is a very useful topic folks!

Does anyone know where to find the schematics of the connector board DESTM32-S2 ?
I just discovered that the schematics are now available online:

http://www.good-display.com/download_list/downloadcategoryid=34&isMode=false&pageNo=1&pageSize=16.html (http://www.good-display.com/download_list/downloadcategoryid=34&isMode=false&pageNo=1&pageSize=16.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 12, 2017, 04:07 pm
My Arduino library GxEPD for e-paper displays is updated on GitHub with classes for 3-color displays 1.54", 2.13" and 2.9".

GitHub - ZinggJM/GxEPD - A simple E-Paper display library with common base class and separate IO class. (https://github.com/ZinggJM/GxEPD)

Thanks to Sponsor Eric.
Title: Re: Good Dispay ePaper for Arduino
Post by: athh on Oct 29, 2017, 10:50 am
Hey ZinggJM! Thank you so much for the thread.

I'm very new to Arduino and want to I'd like to test out Good Display's 1.54" e-paper display, but I have no idea where to start. I have the stuff and DESTM32-S on my hand, but I am not sure how to operate it. I tried following the instructions from GD, but it doesn't help me much since I encountered a lot of errors. Wishing to integrate this Arduino, is it possible if you guide me through a personal message?

Thank you!
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 29, 2017, 04:50 pm
I suggest you try to use my library GxEPD.

Download it as zip file through the link in the preceding post.

Then install it using the Add zip-file method of Arduino IDE Library manager.

In .../Arduino/libraries/GxEPD-master there is the subdirectory GxGDEP015OC1 with class files for your display. In these files you see how to connect the DESTM32-S to Wemos D1 mini, and also the connections for AVR Arduinos, e.g. UNO.

And in examples you see GxEPD_SPI_TestExample to start with.

Please tell us which kind of Arduino you use.

For Arduino UNO or other AVR Arduinos take a look at PagedDisplayExampleSmallRam, to see how you can use it with limited RAM.

You can also take a look at the Waveshare website and their wiki pages for the 1.54" e-paper.

I prefer answering questions in forum topics; so other users can possibly profit from answers; no PM.

PS: caution with Arduino UNO etc.: these e-papers are for 3.3V, the data lines should also be 3.3V, use level converters, voltage divisors or 3.3V Arduinos, or use at least series resistors to avoid damage.
Title: Re: Good Dispay ePaper for Arduino
Post by: athh on Oct 31, 2017, 02:43 pm
Alright, thank you so much for the initial step-by-step tutorial!

Unfortunately, I don't have the Wemos D1 Mini, but I have an IoT microcontroller by Espresso Lite. I'll try to see whether I can substitute the former with the latter.

I have Arduino UNO on hand, but I'm not sure whether I should get Arduino MEGA/Arduino with higher RAM.

I'll look into it and see what I can do.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2017, 03:15 pm
Espresso Lite should be ok, and better suited than any AVR Arduino.

You just need to adapt the pin names; SPI names are defined, but other pins are just numbers.

See in

C:\Users\...\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\variants\generic\common.h

Good Luck!

Unfortunately GxEPD does not compile for Espresso Lite or any other ESP8266 except Wemos. Sorry.

As a workaround you can add the following code before the class includes in the example:

Code: [Select]
#if defined(ESP8266) & !defined(D0)
static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t RX   = 3;
static const uint8_t TX   = 1;
#endif


I will fix this in the next update.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 08, 2017, 04:05 pm
Added Fast Partial Update variant GxGDEW042T2_FPU for 4.2 inch black/white display

- NOTE: This Fast Partial Update variant works with an experimental partial update waveform table

- Side effects and life expectancy with this LUT are unknown, as it is NOT from the manufacturer!
Title: Re: Good Dispay ePaper for Arduino
Post by: ogipo on Nov 10, 2017, 09:30 am
I have GDEW0213Z16 from Good Display. Demo code from their site works with internal LUT's.

I need to use register defined LUT's: (commands 20h, 21h, 22h, 23h, 24h) LUTC, LUTWW, LUTBW/LUTR,  LUTWB/LUTW, LUTBB/LUTB.

I need max speed refresh display in red/black/white, without any effects.

Can you help me with ready to use LUT's? 

Thanks in advance.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 10, 2017, 10:12 am
I have GDEW0213Z16 from Good Display. Demo code from their site works with internal LUT's.

I need to use register defined LUT's: (commands 20h, 21h, 22h, 23h, 24h) LUTC, LUTWW, LUTBW/LUTR,  LUTWB/LUTW, LUTBB/LUTB.

I need max speed refresh display in red/black/white, without any effects.

Can you help me with ready to use LUT's?  

Thanks in advance.
I need these too, or at least I would like to have them!

As far as I know there is no demo or example code that contains the waveform tables for full update for this display, as the manufacturer supplies them in the internal OTP of the controller.

I may go searching, and if unsuccessful, I will ask Dalian Good Display; maybe they are willing to share them.

With the example for full update I could experiment with LUT values for partial update.

But even then, this may not solve your request, as any update for 3-color e-papers will always be considerably slower than for b/w because of the physics behind it. The blog of Ben Krasnow contains explanation:

Fast partial refresh on 4.2" E-paper display from Waveshare / Good Display (http://benkrasnow.blogspot.ch/2017/10/fast-partial-refresh-on-42-e-paper.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ogipo on Nov 10, 2017, 10:31 am
Thanks for info. I wrote to Good Display, but still waiting reply.
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jan 03, 2018, 03:30 pm
Thank you ZinggJM for your great work!

I have received the GDEW075Z09 Display and got it working with a ESP8266 thanks to your work but it is flashing like crazy for refreshing the screen (is that normal).  Also when I print text half of the screen is red. Maybe you know that the problem is?

Thanks,
Chris
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 03, 2018, 06:44 pm
Flashes during update are normal for e-papers. Long and complicated flashes are normal for 3-color e-papers. The waveform table that defines the update timing and phases is provided by the e-paper manufacturer or supplier, either stored in OTP flash memory on the controller, or as loadable waveform table in the demo source code.

I do not have a GDEW075Z09 e-paper display. I had merged the source code (display class) from Contributor Noobidoo, but can't test it.

As I do not really like big 3-color e-papers because of the refresh behavior, I do not intend to buy this e-paper. But a sponsor would be welcome.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jan 03, 2018, 07:46 pm
Thank you for the quick replay ... what is the biggest display that you have?
Is the GDEW042Z15 any good? Or what is your favorit big display?

I'm working on a climate change information panel and will have to use a few Eink displays but 7.5inch is also my limit because there will be all mounted to a bicycle. I like to use a Eink display that also shows RED just to draw attention to the display and the information :)

Cheers,
Chris
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 03, 2018, 08:28 pm
My favorite e-paper display is the 7.5inch b/w display. Its the only display I have in constant use for display of my IoT temperature and humidity sensor values.
Because of my general interest in e-paper and other displays, I had no time to either combine several displays or place several displays in different rooms.

I just recently bought the 4.2inch 3-color e-paper displays to try to learn more about the refresh of 3-color displays. I have started with modified wavetables for the 2.7inch 3-color display.

If you intend to combine several e-paper displays, I would take one 2.9inch b/w/r and two 4.2inch or 7.4inch b/w displays.

I am also interested in other sunlight readable displays, e.g. transflective TFTs, but for the one I got I first need to practice soldering FCP connectors to connection boards.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jan 04, 2018, 09:37 am
Thank you so much for your infos!

I ordered the 7.5inch b/w and the 4.2inch 3color for testing.

I have to go with eink because I will be running all the displays from solar power on a bicycle (readable in sunlight) and for me it will be enough if the image will be refreshed every 30 seconds.

Will also have to test what the most energy efficent way is to run those displays. My plan was to run 12 x 7.5inch screens and I could run half of them with the same information. So that I maybe only need 6 controller to run them.

Cheers,
Chris

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 04, 2018, 10:05 am
I did some tests with 4 e-paper displays connected to the same ESP32 board (Wemos LOLIN32 Lite).
The ESP32 has enough pins and enough RAM for this (common SPI signals, separate CS, wired or BUSY).
The ESP32 has a deep sleep mode (I used it only on ESP8266 so far), and WiFi can be turned off for low power.

I had posted pictures of my wiring in this topic: Waveshare e-paper displays with SPI (https://forum.arduino.cc/index.php?topic=487007.0)

here: https://forum.arduino.cc/index.php?topic=487007.msg3492271#msg3492271 (https://forum.arduino.cc/index.php?topic=487007.msg3492271#msg3492271)

ESP32 provided the most available RAM with low cost; other processors like STM32 could also be used.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jan 04, 2018, 03:26 pm
Thank you Jean-Marc!

I ordered also now the Wemos LOLIN32 Lite & Pro :)

Will biking with the display (when there are finished) from Spain to Sweden and will be also doing a stop in Switzerland and would be very happy to buy you a Coffee then :)
Now I have to save a bit of money again but maybe I will send you one 7.5inch 3 color display ... how can I do that?

Cheers,
Chris
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 04, 2018, 04:21 pm
Hi Chris,

yes, you could visit us when you pass through Switzerland on your bike trip; I will send you my address.

I use to repeat my remark about sponsoring me with e-paper displays I do not yet have, from time to time.
I do not like to "work" for my hobby and pay myself to be able to do the work, but I invest in hardware for learning or for my own use.

I would expect either suppliers to sponsor me, or companies evaluating e-papers and using GxEPD for evaluation. Hobby users should just be able to profit from what is available.

We all need be grateful for sponsor Eric, who has enabled support for the 3 small 3 color e-papers.
This has triggered quite some enhancements to GxEPD.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: 0miker0 on Jan 05, 2018, 06:30 pm
My e-ink display project is all open source.


(https://user-images.githubusercontent.com/4991664/33353117-8969f55e-d482-11e7-8010-1b8fbf2f1f35.JPG)

(https://user-images.githubusercontent.com/4991664/33353107-7d090552-d482-11e7-82af-a5f182c3e1cd.JPG)


https://github.com/mike-rankin/ESP_trINKet
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 05, 2018, 06:51 pm
Thank you for this information. However it is not related to this topic, as seems to use an e-paper from a different provenience than Dalian Good Display.

Your audience deserves a clickable link to the e-paper display you use.
Title: Re: Good Dispay ePaper for Arduino
Post by: Ben8785 on Feb 02, 2018, 10:56 pm
My favorite e-paper display is the 7.5inch b/w display. Its the only display I have in constant use for display of my IoT temperature and humidity sensor values.
...
Why is it your favorite ?
Have you implemented fast partial refresh on this one ?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Feb 03, 2018, 08:35 am
Why is it your favorite ?
Have you implemented fast partial refresh on this one ?

The 7.5inch b/w e-paper display is my favorite one because of its size and the highest number of pixels of the SPI e-paper displays from Dalian Good Display.

I intend to add (experimental) fast partial refresh for this display also, but not with priority, as I use it only for infrequent update with 3 minutes period, and this display seems not so widely used.

I would need feedback to know if there is an important desire for fast partial update for this e-paper.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Ben8785 on Feb 03, 2018, 10:01 am
Great, yes I understand the reasons why it's your favorite :)

I had a look to it and even if it is nice, it's too big and too expensive for my purpose (I'm doing a thermostat).
Moreover I need something fast enough to be used as a Man-Machine interface, while keeping the display and consuming nearly nothing when settings are not changed, hence my choice of an ePaper.

I'm also going to add a touch panel (it's a petty that Good Display does not propose a touch panel on this 4.2 EPD like the 6" GDE060BA-T ; sad that this 6" is so different from the other models and is very complex to control as there is no ILxx controller on it)

I'm using an ESP32 and NRF24 modules to communicate with the heater but still a lot of work.
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Apr 21, 2018, 10:31 pm
Hi Jean-Marc,

thanks again for the update for the 7.5inch 3 color Version! Hope you already received the display I ordered for you :)

Trying right now to run more then one 7.5inch 3color Display with just one ESP32 (right now LOLIN32 PRO) and runing out of memory. Testing right now your GxEPD_SPI_MultiExample and it is working fine with one display but as soon as I add a secound one I get the following message:
...GxEPD_SPI_MultiExample.ino.elf section `.dram0.bss' will not fit in region `dram0_0_seg'
...xtensa-esp32-elf/bin/ld.exe: region `dram0_0_seg' overflowed by 19088 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1

I'm not sure why it is not working because there should be enough space because running just one screen I get the follwing memory use:
Der Sketch verwendet 180617 Bytes (13%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 72772 Bytes (24%) des dynamischen Speichers, 222140 Bytes für lokale Variablen verbleiben. Das Maximum sind 294912 Bytes.

Maybe you got an idea.

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Apr 22, 2018, 08:14 am
Hi  Christian,

Thank you for the 7.5" 3-color display, it arrived.

I just did a quick compile test for 2 of these displays, and had no problem compiling for Wemos LOLIN32.

Code: [Select]
Archiving built core (caching) in: C:\Users\ZinggJ\AppData\Local\Temp\arduino_cache_107057\core\core_espressif_esp32_lolin32_FlashFreq_80,UploadSpeed_921600_9328ee53900c120fb0c6bc3b2aca9e9a.a
Sketch uses 142626 bytes (10%) of program storage space. Maximum is 1310720 bytes.
Global variables use 132780 bytes (45%) of dynamic memory, leaving 162132 bytes for local variables. Maximum is 294912 bytes.


Arduino 1.8.5, ESP32 package should be quite up-to-date. I attach the modified GxEPD_SPI_MultiExample.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Apr 29, 2018, 09:57 pm
Thanks for the quick replay :)

It's not working for me :( but no worry will try a bit this week if I find something out.

Do you have a Yellow Color screen yet? Because I tryed your code with a yellow 7,5inch screen and it is not working.

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Apr 30, 2018, 07:28 am
Hi Christian,

From your post it is impossible for me to know what works and what doesn't.

Quote
It's not working for me  but no worry will try a bit this week if I find something out.
Does this refer to the compile issue with multiple displays?
Do you use the actual Arduino IDE version and the actual ESP32 package?

Quote
Do you have a Yellow Color screen yet? Because I tryed your code with a yellow 7,5inch screen and it is not working.
Does this mean it works with your 7.5" b/w/r but not with your 7.5" b/w/y, in single display use?
I do not have any b/w/y e-paper displays, but as far I know the demo examples are identical, as the controllers are identical, just the color particles of the panel have a different color.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Apr 30, 2018, 12:17 pm
Sorry Jean-Marc,

you are totally right ;) ... I should have detailed my problem :) SORRY :)

Your script is working for the Yellow screens as well ... the update just takes longer then on the red one and the update looks like it destroyes the display so I just stopped it before it was finished because I didn't want to destroy the display ... but I also tested the original example from Waveshare and it does the same ... so I would say that this display is not so good for production use! But now I already have 4 :( and have them also already installed.

I also tested the script you posted and I get the same memory problem (what I posted before).
I use Arduino 1.8.5 and the latest ESP32 package.
I will try today to see if I can fix it and post something when I find a solution.

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Apr 30, 2018, 02:23 pm
Hi Christian,

For which board do you compile for? You wrote you have a Wemos LOLIN32 PRO. This board is not on the target list of my ESP32 package, so maybe I need to update it for this test.

Maybe the yellow 7.5" e-paper IS different; I will try to find out on the specs and demo codes.
You could check to see if you get "Busy Timeout!" in the diagnostic output on Serial Monitor, and if not, report the time reported for update.

Jean-Marc

I installed the actual ESP32 package on my test notebook, and now I get the same error:

Code: [Select]
Arduino: 1.8.5 (Windows 10), Board: "WEMOS LOLIN32, 80MHz, 921600"

Archiving built core (caching) in: C:\Users\ZinggJ\AppData\Local\Temp\arduino_cache_594495\core\core_espressif_esp32_lolin32_FlashFreq_80,UploadSpeed_921600_9328ee53900c120fb0c6bc3b2aca9e9a.a
c:/users/zinggj/documents/arduino/hardware/espressif/esp32/tools/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\ZinggJ\AppData\Local\Temp\arduino_build_635871/GxEPD_SPI_MultiExample.ino.elf section `.dram0.bss' will not fit in region `dram0_0_seg'

c:/users/zinggj/documents/arduino/hardware/espressif/esp32/tools/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: region `dram0_0_seg' overflowed by 28968 bytes

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board WEMOS LOLIN32.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


Don't know yet how to proceed.

arduino-esp32/issues (https://github.com/espressif/arduino-esp32/issues) currently has 321 open issues.

This is the relevant issue: https://github.com/espressif/arduino-esp32/issues/1163 (https://github.com/espressif/arduino-esp32/issues/1163)
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Apr 30, 2018, 04:40 pm
Hi Jean-Marc,

yes, I was using the LOLIN32 Pro because of the extra RAM Chip.

The yellow screen has just a very strange refresh algorithm that looks terrible. But it is the same with the original Waveshare code ... so it is the screen :(

I can run your code with a GxGDEW075Z09 + GxGDEW075T8 together fine but not with 2x GxGDEW075Z09.
If I run it with a  GxGDEW075Z09 + GxGDEW075T8 + GxGDEW027C44 I get also the "region `dram0_0_seg' overflowed by 48 bytes" so that combination would almost work :)

My Goal would be to run at least 3 x GxGDEW075Z09 at the same time.

I mounted now already 12 7.5inch screens to my bicycle with 6 on each side. I'm running 6x b/w/r, 4xb/w/y and 2x b/w ... the 2 b/w will show the same and will be run on a seperate ESP because they will show CO2 measurements and the other 10 will repeat a "slow slide show" with different images on each screen and I would like to run them with as few ESP32 as possible and 5 Screens (one side) should show one "story line".

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Apr 30, 2018, 05:42 pm
Hi Christian,

Aha, so the yellow ones have a different waveform table than the red ones, maybe. Waveform tables for this controller are a difficult or problematic story; the 5.83" b/w I got has a waveform table with ~30s 15s refresh time, which is unusually long for a b/w e-paper display, and Good Display does not want to provide an example waveform table that could be modified and loaded into registers. Maybe because the controller supports gray levels.

For multiple big e-paper displays on ESP32 you could download an earlier version of the espressif Arduino package, or you could use GxEPD2_32, which uses picture loop to reduce RAM usage, configurable in the header file, default ~5k. No multi-display example, but this can be done similar to GxEPD.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: bingyu11 on May 08, 2018, 05:16 pm
Hi,

I ordered the e-paper GDEW0213Z16 from Good Display. But after I finished the connection to Arduino Nano via a 24-P FPC, there is no response from the dispay. In the monitor, I can see the following messages. I followed the connection suggestion you provided on GitHub:

BUSY(9) -> D7, RST(10) -> D9, DC(11) -> D8, CS(12) -> D10, CLK(13) -> D13, DIN(14) -> D11, VSS(17) -> GND, VCI(16) -> 3.3V

I tried several examples, none of them can show something in the display. Hope you can help. Thanks.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 08, 2018, 07:06 pm
Please post a picture of your connection, then I know what you are talking about. These displays should not be connected directly to 5V Arduino IO pins, nor to 5V supply.
Title: Re: Good Dispay ePaper for Arduino
Post by: bingyu11 on May 09, 2018, 09:16 am
Please post a picture of your connection, then I know what you are talking about. These displays should not be connected directly to 5V Arduino IO pins, nor to 5V supply.
Please check the connection pictures below. I didn't use the 5V output from Arduino. Instead I used the 3.3V according to the spec.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 09, 2018, 09:56 am
Aha, that's what I feared, therefore my question. I hope your display survived!

These displays need an adapter board, e.g. the DESTM32-S2 from Good Display, or the E-Paper HAT from Waveshare. These contain the so called "reference circuit" you find on the datasheet, which produces the special voltages e-paper displays need for refresh, in combination with the controller on the panel.

And I told you not to connect data lines directly to 5V Arduino IO pins, this voltage is outside of specs, and reduces the lifetime of the controller!

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: bingyu11 on May 09, 2018, 11:16 am
Aha, that's what I feared, therefore my question. I hope your display survived!

These displays need an adapter board, e.g. the DESTM32-S2 from Good Display, or the E-Paper HAT from Waveshare. These contain the so called "reference circuit" you find on the datasheet, which produces the special voltages e-paper displays need for refresh, in combination with the controller on the panel.

And I told you not to connect data lines directly to 5V Arduino IO pins, this voltage is outside of specs, and reduces the lifetime of the controller!

Jean-Marc

Thanks for your information. I didn't expect that. I'll try to get that adapter.
Title: Re: Good Dispay ePaper for Arduino
Post by: GarryG on May 27, 2018, 08:37 pm
Has anybody here used a Heltec 2.9" E-Paper display with this library? It only has 6 pins in total, VCC/GND, CLK, CS, SDI and D/C ... so no Busy or Reset ... can't seem to get it to do anything ...
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 27, 2018, 09:46 pm
Hi GarryG,

See issue #40 (https://github.com/ZinggJM/GxEPD/issues/40).

Tell Heltec or your vendor to sponsor me with some of these devices for support in GxEPD.

Or take a look at GxEPD2, which is "under construction".

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: zipper_x on Jun 05, 2018, 07:01 pm
Jean-Marc,

I just receive 2 of those boards.

https://www.aliexpress.com/item/TTGO-T5-V2-0-WiFi-wireless-Module-bluetooth-base-ESP-32-esp32-2-13-ePaper-display/32869729970.html?spm=2114.search0104.3.10.4fe129d7UjNURO&ws_ab_test=searchweb0_0,searchweb201602_3_10152_10151_10065_10344_10068_10130_10342_10547_10343_10340_10548_10341_10696_10084_5722520_10083_10618_10139_10307_10059_5722620_5722920_5722720_5722820_100031_10103_10624_10623_10622_10621_10620,searchweb201603_25,ppcSwitch_4&algo_expid=e9275c17-c21a-41e9-b207-0e54a72d4538-1&algo_pvid=e9275c17-c21a-41e9-b207-0e54a72d4538&transAbTest=ae803_1&priceBeautifyAB=0

They came with your GxEPD_SPI_TestExample load in it... They work find on USB but as soon as I switch to a battery they shutdown after about 30 sec. I made some more test and if initialize the display (Good Display) with your library "display.init()" they end-up shutting down about 30 sec. on battery but fine on USB. Any other code not involving the library is fine...

Now, I wondering if its a hardware issue or if it could something with the library.

I like to have your opinion... Any though?

Regards
Francis

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 05, 2018, 08:41 pm
@zipper_x

I think you should measure the voltage on the 3.3V pin, and report the value it has when the shutdown occurs.

What do you mean by any other code not involving the library is fine.. ?

Any other code that uses the display is fine?

Does the processor shut down, or does it just no longer update the display?

Did you try with the actual version of the library?

Did you try with diagnostic output disabled?

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: zipper_x on Jun 06, 2018, 01:05 pm
Jean-Marc,

Discard my previous post I found out the issue. Nothing to do with your library. They use IP5306 as battery management system.  According to the data sheet, if the load current drops below 45mA during 32 seconds, the IP5306 goes into standby and shutdown the ESP32 and the display...

I think they missed the idea of ePaper to be used in a low powered system...

Regards
Francis
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 06, 2018, 01:38 pm
Francis,

Thank you for the information! I hope I will remember, if I ever try to use my TTGO-T5 with LiPo Accu.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: bingyu11 on Jun 07, 2018, 10:01 am
Hi,

I'm using the class GxGDEW0213Z16 with Arduino NANO. The examples works fine. But when I tried to fill a rectangle with black color, the drawing always stoped somewhere in the Y direction. In addition, when I tried to draw a line, nothing appears in the screen. Do you know what the possible reason is? Thanks.

Code: [Select]
display.fillRect(0, 0, GxGDEW0213Z16_WIDTH, 100, GxEPD_BLACK);
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 07, 2018, 10:35 am
Hi bingyull,

I tried hard to see the surrounding of your single line of code, but it has no scroll bar!

Anyway, it is quite clear that this line of code is not part of a drawCallback function, as it needs to be for a processor with limited RAM (AVR processor).

AVR processors do not have enough RAM for full buffered drawing; paged drawing must be used.

See README.MD

Jean-Marc

But your picture seems to show a different issue, with two different shades of red.
It looks like incomplete refresh, with unknown reason.

Did you use at least series resistors on the data lines, if your NANO is 5V ?

And maybe your FCP connection is not perfect, it looks like not inserted in the connector enough. You first loosen the black retainer slightly, by pulling out the black cubes ~1mm, then push in the flex connector, then push in the retainer.
Title: Re: Good Dispay ePaper for Arduino
Post by: bingyu11 on Jun 07, 2018, 12:52 pm
Hi,

Thanks for your reply. I changed to esp8266, and the problem was fixed. As you said, I think it's the problem of the limited memory for NANO.

By the way, I want to display something dynamically, but without the flashing effect that happens in this E-paper display. Do you know any alternatives to this display, or any advices to avoid this effect?


Hi bingyull,

I tried hard to see the surrounding of your single line of code, but it has no scroll bar!

Anyway, it is quite clear that this line of code is not part of a drawCallback function, as it needs to be for a processor with limited RAM (AVR processor).

AVR processors do not have enough RAM for full buffered drawing; paged drawing must be used.

See README.MD

Jean-Marc

But your picture seems to show a different issue, with two different shades of red.
It looks like incomplete refresh, with unknown reason.

Did you use at least series resistors on the data lines, if your NANO is 5V ?

And maybe your FCP connection is not perfect, it looks like not inserted in the connector enough. You first loosen the black retainer slightly, by pulling out the black cubes ~1mm, then push in the flex connector, then push in the retainer.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jun 07, 2018, 02:38 pm
You would need to use a b/w e-paper with fast partial update support, if you want to use e-paper for this.
Note that a full refresh (with the flickering effect) is still needed from time to time to avoid degradation on the displayed picture. Full refresh should also be done before a longer period without updates.

GxEPD does not power down the display after partial update, so powerDown() should be called before disconnecting in this case for better picture retention.
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 09, 2018, 03:27 pm
Hi Jean-Marc,

when I run the latest GxEPD2_SD_Example with the 7,5inch display (3C) it does not work if I run the images at full resolution (640x384).
Error:bitmap format not handled

It works fine if I go a little smaller to for example 639x382 but then I get a black bar on the right side. And the bar i wider then 1 pixel.

Also the refresh time is really long "loaded in 44254 ms" 24bit and a little faster with 16bit. Are you working still on the 4bit?
Do you maybe have a tip on how to make it a little bit faster? I know the refresh rate is slow on this displays (Full refresh time: 16s) but I get like 80s :(

Could you maybe make a multi display example for GxEPD2?

Hope I can start my bike tour with the displays soon :)

Thanks for your great work!

Christian

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 09, 2018, 04:32 pm
Hi Christian,

Please always mention (repeat) the configuration of the test you made, so I and other readers don't need to scroll backwards and guess what processor you used.

Sorry, I tested the 7.5" 3-color only with ESP8266, not with ESP32; there are so many combinations to test. But I will do that test, and hopefully find a fix. You can also try, maybe you just need to reduce the page height parameter for the template class. Try:

Code: [Select]
GxEPD2_3C<GxEPD2_750c, GxEPD2_750c::HEIGHT / 2> display(GxEPD2_750c(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4));


Even if I would have tested this combination, I would not have found this issue, as I still have the old ESP32 package installed on my work notebook!

Yes, I can prepare a multi display example for GxEPD2, should be easy enough.

I will try to analyze the speed issue. Bitmap depth of 4 may help, but also SPI speed for big displays.

Bitmap handling and SPI transfer are about 10% for the example bitmaps, so maybe 20 to 30% for full size bitmaps. If you use only full-size bitmaps, you can replace display.clearScreen() with display.writeScreenBuffer() in the example code; no need to clear the screen to clear surroundings.

When do you intend to start your tour, should I hurry up?

Thanks for the feedback

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 09, 2018, 04:51 pm
Hi Jean-Marc,

I would like to start my tour beginning of next month. But I also still have so much stuff to do and just found out that 2 displays that I glued the my bike box are already broken :(

Have to build a aluminium frame as soon as there are all working.

Somehow one has a broken corner ... don't know when that happend and the other looks fine but the last third is not refreshing. Still have 3 display that I wanted to glue to the back so have to change that plan too.
Do you know any bigger e-ink screen than the 7'5 inch that are easy to controll?

Thanks for your help and I will be biking through switzerland :)

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 09, 2018, 05:36 pm
None that I know or have experience with. The 8" b/w has more pixels but nearly same size, but parallel interface, and is complicated to use.

Good Display has an (expensive) extra bright TFT display, afaik.

For big displays tablets, kindles or matrix displays may be alternatives. Or industrial grade outdoor displays.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 09, 2018, 05:47 pm
Hi Jean-Marc,

the "display.writeScreenBuffer();" already reduced the time from 80s to 40s!!! And most of the time you already see something and not just flicker.

That is already a lot better :) and almost perfect. If I could get it a tiny bit fast with the 4bit or something else that would make my day.

The other code is not working ... I still get the black line to the right side.

Thanks for the display info ... I just have to power the displays with battery/solar power of my bike and TFT are just using to much electricity. Otherwise that would have been my first choise.

THANKS!!!

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 09, 2018, 06:53 pm
Hi Christian,

4bit color depth is implemented in this example, thanks to the code I copied from David Prentice and adapted for GxEPD2. The problem is creating a bitmap with 4bit color depth, that I don't know how to.

The refresh time of this display is ~31s.

I had started a forum topic on bitmap conversion, but did not get any response yet. Maybe Paintshop can do this, I have not checked yet.

Does this black line occur with full size bitmap? Please post some examples; I have only those copied from David or created from the example bitmaps.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 10, 2018, 12:24 pm
Hi

I tested 4bit bmp and this is the result for the same picture:
Bit Depth: 24
Image size: 639x383
loaded in 7073 ms
_Update_Full : 37386966

Bit Depth: 4
Image size: 639x383
loaded in 3786 ms
_Update_Full : 37384965

Using ESP32 TTGO T8

So now I'm down to around 35s and that would be good enough for me! If you have any other idea to make it a tiny bit faster that would be great but for now I'm happy with the refresh!

As the attachment I have put a photo with the black bar. The bar becomes also part of the picture, so if I have a image till the right side the black bar just goes ontop. I don't have that problem with smaller images ... for example 600x300 I don't have a black bar.

I updated to the latest 1.0.2 Version of GxEPD2 and have still the same problem. Also I can't use 640x384 images ... 639x383 are working fine. I have also added 2 24bit and 2 4bit images.

To convert images to 4bit I use PhotoELF right now (shareware). It is an old programm but it can convert to 4bit bmp. If somebody knows a better programm please let me know!!! I tested a lot of programms and there are almost non that can convert normal images to 4bit bmp :(

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 10, 2018, 02:41 pm
quick reply: change line 319:

Code: [Select]
      if (w <= max_row_width) // handle with direct drawing


I need to do more tests before checking in the fix, there is also an issue with width not multiple of 8.

Your refresh time of 37s is slightly longer than mine of 31s. Either your microseconds are shorter (T8), or the waveform table is different.

The MultiDisplay example is more work than expected, because of the template classes, for a general example. I need to re-consider to use a common base class for a future release version.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 10, 2018, 03:01 pm
Hi Jean-Marc,

thanks, yes that fixed the problem! I was checking the code but also missed that bit.

Don't worry about refresh time. For me it is working now good enough!

Thanks for your help!

If you could just make a "quick & dirty" example for MultiDisplay that would also be fine with me :)

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 11, 2018, 11:26 am
Hi Christian,

I have added the example GxEPD2_MultiDisplayExample to the library GxEPD2, declared as "preliminary".
I have tested it with the 4 uncommented displays on Wemos LOLIN32, compiled on my development notebook, not yet tested on my other notebook with actual ESP32 package.

The version of the library has not changed, as the fixes are still pending; black boarder issue needs additional investigation.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 11, 2018, 05:44 pm
GxEPD2 version 1.0.3 available with fixes for GxEPD2_SD_Example.

This version also adds the GxEPD2_MultiDisplayExample, an example that shows how to use multiple e-paper displays on one processor board with multiple instances of display classes. It also shows how to preserve IO pins by sharing RST and BUSY IO pins, in addition to the shared SPI pins. Each display needs its own CS pin.

Passing references or pointers to the display class instance is complicated by the fact that the template classes used in this version of the GxEPD2 library have no common base class (except Adafruit_GFX).

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: opendocumentary on Jul 12, 2018, 08:45 am
Hi Jean-Marc,

THANKS ... now I know what I will do this weekend :)

Cheers,
Christian
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 13, 2018, 10:20 am
GxEPD2 Version 1.0.4 available with GxEPD2_GFX base class support.

Base class GxEPD2_GFX can be used to pass references or pointers to the display instance as parameter.

This avoids the need of using template functions when a display reference parameter is used.

GxEPD2_GFX_MultiDisplayExample uses GxEPD2_GFX reference parameter passing, can replace GxEPD2_MultiDisplayExample.

GxEPD2_MultiDisplayExample is kept as reference for template function use, and modified for ESP8266 template syntax issue. (GxEPD2_MultiDisplayExample kept as "abschreckendes Beispiel" for missing base class issue).

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: noelportugal on Jul 17, 2018, 03:13 am
Hello,

Using GxEPD2 I always the following Serial print. Although useful to know whats happening, I would like to disable it (the debugging) at some point. Is there a flag for this?

Code: [Select]
_PowerOn : 100127
_Update_Full : 15404462
_PowerOff : 28955


Thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 17, 2018, 05:09 am
Hi

The actual version has an init() parameter for this. I think it should work.

Code: [Select]
void init(uint32_t serial_diag_bitrate = 0) // = 0 : disabled
Title: Re: Good Dispay ePaper for Arduino
Post by: noelportugal on Jul 17, 2018, 05:39 am
Yeah, that did it! thanks again. Soon I'll share here what have I been working on  8)
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Jul 20, 2018, 12:01 pm
Hi,Jean-Marc Zingg

I hope a beautiful day for you,
Yesterday I ordered 5.83 inch GoodDisplay with serial of : GDEW058Z21 and used it with the ESP32 but unfortunately the library you made is supporting the B&W version :
//#include <GxGDEW0583T7/GxGDEW0583T7.cpp>    // 5.83" b/w
could you tell me what to do ? I really want to use the red Color.

Thanks in Advance,
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Jul 20, 2018, 12:20 pm
Hi Jean Marc,
I have Purchased the GoodDisplay 5.83 inch GDEW058Z21 and found no supporting library for it since It's 3 Colors  and You only support //#include <GxGDEW0583T7/GxGDEW0583T7.cpp>    // 5.83" b/w
which is black and white version
Do you have any Ideas what should I do ?

Thanks for Helping,
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 20, 2018, 01:41 pm
Hi WegzZ,

Try to use it with library GxEPD2, where it is supported, but untested. It has a very long refresh time ~30s.
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Jul 21, 2018, 10:32 am
Hi,Jean-Marc Zingg

I hope a beautiful day for you,
Yesterday I ordered 5.83 inch GoodDisplay with serial of : GDEW058Z21 and used it with the ESP32 but unfortunately the library you made is supporting the B&W version :
//#include <GxGDEW0583T7/GxGDEW0583T7.cpp>    // 5.83" b/w
could you tell me what to do ? I really want to use the red Color.

Thanks in Advance,
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 21, 2018, 11:28 am
Hi,Jean-Marc Zingg

I hope a beautiful day for you,
Yesterday I ordered 5.83 inch GoodDisplay with serial of : GDEW058Z21 and used it with the ESP32 but unfortunately the library you made is supporting the B&W version :
//#include <GxGDEW0583T7/GxGDEW0583T7.cpp>    // 5.83" b/w
could you tell me what to do ? I really want to use the red Color.

Thanks in Advance,
GxEPD2 (https://github.com/ZinggJM/GxEPD2), GxEPD2_583c.h (https://github.com/ZinggJM/GxEPD2/blob/master/src/epd3c/GxEPD2_583c.h) and post #100
Title: Re: Good Dispay ePaper for Arduino
Post by: djerred on Jul 25, 2018, 08:20 pm
Hi,
I am wondering if the 1.43 in flexible display (http://www.good-display.com/products_detail/productId=315.html) made by good display would be a candidate for being added to one of the above libraries. I would like to incorporate this into a project but I am unsure of the difficulty that is required to control it. From my research it looks this product is fundamentally different than the other displays supported in the GxEPD libraries. Has anyone had any experience with using these displays?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 26, 2018, 06:46 am
Hi,

The Good Display SPI e-paper displays came into the reach of Arduino hobby users, when Good Display decided to sell the DESTM32-S2 adapter board of their DESTM32-S1 evaluation board separately (as I had suggested to them). Then came Waveshare with their SPI e-paper display boards, which made these displays easy to use.

For the mentioned 1.43 flexible display an adapter board with controller would be needed, and a demo code example to start with. If this combination could be a candidate for GxEPD or GxEPD2 is unknown; I don't expect. It might be better usable with a dedicated library or driver class.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Jul 26, 2018, 05:05 pm
Hi Jean-Mark ,

I have bought the GDEW042Z1 from GOOD_DISPLAY and I Have some sensors that I need to show their values on the e-paper , the problem that the screen always blink as I change every value ,
I used the example screen but no way to solve it ...

my code i used in partial update was in the examples you provided but the example also blink the whole display:

it would be great if you helped to change text in this area without blinking

thanks,
Code: [Select]

----------------------------------------------------------------------------------
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <Fonts/FreeMonoBold9pt7b.h>

GxEPD2_3C<GxEPD2_420c, GxEPD2_420c::HEIGHT> display(GxEPD2_420c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4));


void setup()
{
 Serial.begin(115200);
 Serial.println();
 Serial.println("setup");
 display.init(115200);
first update should be full refresh
 helloWorld();
// partial refresh mode can be used to full screen,
 delay(1000);
 helloEpaper();
 Serial.println("setup done");
}

void loop()
{
}

void helloWorldCallback(const void*)
{
 uint16_t x = (display.width() - 160) / 2;
 uint16_t y = display.height() / 2;
 display.fillScreen(GxEPD_WHITE);
 display.setCursor(x, y);
 display.println("Hello World!");
}

void helloWorld()
{
 //Serial.println("helloWorld");
 uint16_t x = (display.width() - 160) / 2;
 uint16_t y = display.height() / 2;
 display.setRotation(1);
 display.setFont(&FreeMonoBold9pt7b);
 display.setTextColor(GxEPD_BLACK);
 display.setFullWindow();
 display.drawPaged(helloWorldCallback, 0);
 Serial.println("helloWorld done");
}


void helloEpaperCallback(const void*)
{
 uint16_t x = (display.width() - 160) / 2;
 uint16_t y = display.height() * 3 / 4;
 display.fillScreen(GxEPD_WHITE);
 display.setCursor(x, y);
 display.println("Hello wegzz!");
}

void helloEpaper()
{
 Serial.println("helloEpaper");
 uint16_t x = (display.width() - 160) / 2;
 uint16_t y = display.height() * 3 / 4;
 display.setRotation(1);
 display.setFont(&FreeMonoBold9pt7b);
 display.setTextColor(display.epd2.hasColor ? GxEPD_RED : GxEPD_BLACK);
 display.setPartialWindow(0, y - 14, display.width(), 20);
 display.drawPaged(helloEpaperCallback, 0);
 Serial.println("helloEpaper done");
}
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jul 26, 2018, 05:30 pm
Hi WegzZ,

Unfortunately you can't be helped with your 3-color display. This is the physical process needed to refresh a colored e-paper display, and it is driven by a wavetable stored in the controller on the e-paper panel, the lengthy slab you can see near the flexible connector.

For your display the refresh time is about 16 seconds, and you see the red color refreshed towards the end of the refresh phase.

Only the small b/w e-papers that officially have partial update have "fast partial update" with a special wavetable for this (only possible for monochrome), plus the 4.2" b/w with an unofficial fast partial update waveform table, now also available in the official demo.

In GxEPD2 you find the measured refresh times of the e-paper displays I have, e.g. for 4.2" 3-color:

Code: [Select]
   static const uint16_t full_refresh_time = 16000; // ms, e.g. 15771891us

    static const uint16_t partial_refresh_time = 16000; // ms, e.g. 15771891us



Please edit your post and put the code into code tags, the </> command icon.
Title: Re: Good Dispay ePaper for Arduino
Post by: b1g0n3 on Aug 03, 2018, 09:53 am
Hi everybody,
Very usefull library for epaper. Congratulation for your work
Just for your information, I made a monitor with esp8266+DESTM-S2+epaper and a 3d model for it.
You can find it here : https://www.thingiverse.com/thing:3017743 (https://www.thingiverse.com/thing:3017743)

(https://cdn.thingiverse.com/renders/d9/79/91/1d/d4/f8eb01a587039a923beb4304bd8eb2c7_preview_featured.jpg)

Francois
Title: Re: Good Dispay ePaper for Arduino
Post by: crazyman2012 on Aug 13, 2018, 12:02 pm
Hi Jean-Marc,

I am working on a project where I am planning to use E-paper display (B/W) with arduino Mega. I have interfaced another e-paper display already with Atmega2560 already but due to some limitation of that I have to switch to the e-paper display of good-display company. On their website they are providing code for STM and as far as I understood from this thread you have done it with ESP for memory. Atmega2560 have 8KB of RAM so can we/ have you interface it with arduino Mega?

If yes can you share the code?

Thank you.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 13, 2018, 01:35 pm
Hi Crazy Man,

Arduino MEGA / Atmega2560 is an uncommon board for use with e-paper for me. So I did not handle the special case of a Arduino MEGA with e.g. a 200x200 pixel b/w e-paper display in my library GxEPD (https://github.com/ZinggJM/GxEPD). The display buffer for this would just fit into available RAM: 200*200/8 bytes. GxEPD handles all AVR Arduinos using paged drawing.But you can use GxEPD with Arduino MEGA.

These e-papers work with 3.3V supply and need 3.3V data signals. Use at least series resistors on data lines.

With the library GxEPD2 (https://github.com/ZinggJM/GxEPD2) you can specify the page height used for paged drawing in the application code as template parameter, so you can decide how much RAM should be used for paged drawing or full buffered drawing, and how much left for your application.

Take a look at the readme.md files of these libraries, to learn about paged drawing.

You did not tell which e-paper display you intend to use, so I can't provide more help for now.
Post again with additional questions; this should get you started. Good Luck!

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: crazyman2012 on Aug 13, 2018, 02:25 pm
Hi Jean-Marc,

I will be using good-display e-paper model GDEW0213V7LT.
here's the link http://www.good-display.com/products_detail/productId=405.html

I know the memory is the main constraint for E-paper that's why I have selected Atmega2560, and I have already made standalone Atmega2560 PCB for using it with E-paper with the driver circuitry and also tested with one E-paper display which needed 5512 bytes successfully.

I will take look into your library.

Thank you for your help. :)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 13, 2018, 03:20 pm
@crazyman2012

Quote
I will be using good-display e-paper model GDEW0213V7LT.
Unfortunately this e-paper is not supported by any of my libraries; I do not have this new display.

It has a different resolution than the 2.13" b/w display GDE0213B1 I have and support.
The resolution parameters and maybe other setup parameters will be different.

You can try to adapt the display classes for the GDE0213B1 to your GDEW0213V7LT. Or try to persuade Good Display Support to provide one of these to me.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: crazyman2012 on Aug 14, 2018, 07:29 am
Sure, I'll try that and post what happened.

Thank you.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Aug 20, 2018, 10:07 am
Hi everybody,
For a project I need a big Epaper screen with partial refresh so I was suggested to use the 6" one of Good Display, unfortunately it works in parallel and it is not well documented to be used with Arduino boards.
I know that some people is working on that and I wrote to the company to make this porting to Arduino easier, this was the answer.
Quote
Good day.
This is Chris from Good Display team, thanks for your inquiry.
Regarding to our 6" with partaial refesh epaper, you will see more information as below:
http://www.good-display.com/products_detail/productId=113.html
Current for the sample code we can provide is only support ARM, but i will inform our R & D dept.
Can you develop the board refer to the code that we provided? Also may i know do you have tested our epaper?

Any question, contact me anytime.

So I answer that I can't develop my own code, but some people is working on that and that I would buy this display if well supported etc...
He answered me again (very kindly).
Quote
Good day.
Appreciate that you can share so much information with us, this will be very helpfull.
This week on Wednesday, we will have a meeting to discuss about Arduino.
For the demo code, i suggest you try to learn from one of our agent Wareshare, they have Arduino board, the epaper on sale all provide by us.

Will update any news here.

I think that the this very kind and willing company is coming towards the Arduino world in the future.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 20, 2018, 02:10 pm
Very welcome!

I have added the following to the Waveshare e-paper topic:

Quote

Addition for this topic:

Maybe you could ask Waveshare if they have any plans for additional parallel interface e-paper displays. Their 4.3" b/w e-paper display with serial connection uses the 4.3" parallel interface e-paper; in fact, their board is a complete STM32 system. So they have the knowledge and resources to do this, but would maybe need to know the market potential. The Arduino community might be very interested, if the source would be provided open, to allow to modify the on-board application.
From my experience, the 6" parallel e-paper provides much better contrast and picture quality than the 4.3".
I now have a 7 days evaluation license for Keil 5, and my next step is to check the original demo code on my DESTM32-T system, as my initial version of the ported code hangs at an unexpected place.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Aug 20, 2018, 08:51 pm
I will forward your question to them and wait for the answer :)
Very welcome!

I have added the following to the Waveshare e-paper topic:

I now have a 7 days evaluation license for Keil 5, and my next step is to check the original demo code on my DESTM32-T system, as my initial version of the ported code hangs at an unexpected place.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Maxvi33 on Aug 24, 2018, 02:41 pm
Hello everybody,

I'll try to introduce e-paper for ma domotic station but i have a problem... it doesn't work :D

I use a Blue Pill with DESTM32-S2 and HINK-E042A07 (HINK-E042A07 (https://www.unisystem-displays.com/en/products/epd/hink-e042a07.html) )

I use GxEPD_SPI_TestExample sketch and uncomment the lines below:

Code: [Select]

#include <GxGDEW042Z15/GxGDEW042Z15.cpp>    // 4.2" b/w/r

#define BOARD_SPI1_NSS_PIN        PA4
#define BOARD_SPI1_MOSI_PIN       PA7
#define BOARD_SPI1_MISO_PIN       PA6
#define BOARD_SPI1_SCK_PIN        PA5




I'm sur to my hardware connection between DESTM32-s2 and blue pill..
On the serial i have "Busy Timeout" message.

Do you have any idea why it doesn't work please ?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 24, 2018, 04:46 pm
Hi Maxvi33,

Yes, I have an idea, but I simply don't know if it is relevant.

GxEPD is for display panels from Dalian Good Display, and in the file GxGDEW042Z15.cpp you have chosen you see the controller it is intended for.

I have no idea if the controller SSD1619 of your display is compatible, nor if the pinout of the FCP connector is ok for DESTM32-S2. And I am not motivated to look at the details of the two specs to find out.

So you have to find out yourself if your e-paper should be compatible with the one from Good Display.

But maybe some other user of GxEPD has the time and will to do that.

Added: and you could post your wiring; did you connect BS to GND?

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Aug 25, 2018, 03:16 pm
Hi,ZinggJM
I'm using the 4.2 display 400x300 GDEW042T2 and I'm trying to fix the size of the picture with the dpi but i lost , can you provide the best settings that i can do for the best result on this screen.
Also img2lcd is a software for windows only do you have any alternatives for MAC OSX? or any website that you tried yourself and it works ?

Thank you so much 
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 25, 2018, 04:43 pm
Hi WegzZ,

Quote
I'm using the 4.2 display 400x300 GDEW042T2 and I'm trying to fix the size of the picture with the dpi but i lost , can you provide the best settings that i can do for the best result on this screen.
I don't understand your question; is it related to img2lcd? I have no experience with img2lcd, but someone reported that Waveshare has an example of use on their Wiki pages.

And someone posted about a webpage with a similar name, but I have not found that post again.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Aug 30, 2018, 11:05 am
Very welcome!

I have added the following to the Waveshare e-paper topic:

I now have a 7 days evaluation license for Keil 5, and my next step is to check the original demo code on my DESTM32-T system, as my initial version of the ported code hangs at an unexpected place.
Addition for this topic:

Maybe you could ask Waveshare if they have any plans for additional parallel interface e-paper displays. Their 4.3" b/w e-paper display with serial connection uses the 4.3" parallel interface e-paper; in fact, their board is a complete STM32 system. So they have the knowledge and resources to do this, but would maybe need to know the market potential. The Arduino community might be very interested, if the source would be provided open, to allow to modify the on-board application.
From my experience, the 6" parallel e-paper provides much better contrast and picture quality than the 4.3".

Jean-Marc
Here the answer to this

Quote
Hello Giacomo,

Good day.
Apologized for my delay.
Regarding to your suggestion for Arduino, we have discussed, we will develop it but not now.
Our R & D dept have already add this to their plan, i hope it can be ready as soon as possible, will let you know.

Best regards,
Chris
EDIT: I have tried to get rid of quote problems of the previous post
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 30, 2018, 02:52 pm
@Bjack795,

Please check your post before posting, as your quote is incomplete; I tried myself, it looks like quoting posts that contain a quote does not work. So the meaning gets disturbed.

Thank you for the information.

Good Display know that I am working on a version for Arduino for my library GxEPD.
They provided also the document for the AVT6203A ASIC chip, as I could not download it from baidu.cn, as I have no account.

The AVT6203A is a general ASIC chip for use with EPD panels, it his highly configurable and generates the signals for the panel when fed with data, reading waveform table data from a serial flash memory that is also programmable though the AVT chip. The waveform table data is available in the demo source, but there seems no format information available (may be proprietary and not needed for use).

I was able to convert the demo code to be compiled with Arduino IDE and successfully run on the demo board. And I am making progress to convert that code for use as a display class in GxEPD.
The processor on the demo board has 64k RAM, so it looks like a full graphics b/w buffer of 600*800/8 bytes for text and graphics rendering can be achieved. But there is still work ahead.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Aug 30, 2018, 03:26 pm
@Bjack795,

Please check your post before posting, as your quote is incomplete; I tried myself, it looks like quoting posts that contain a quote does not work. So the meaning gets disturbed.

Thank you for the information.

Good Display know that I am working on a version for Arduino for my library GxEPD.
They provided also the document for the AVT6203A ASIC chip, as I could not download it from baidu.cn, as I have no account.

The AVT6203A is a general ASIC chip for use with EPD panels, it his highly configurable and generates the signals for the panel when fed with data, reading waveform table data from a serial flash memory that is also programmable though the AVT chip. The waveform table data is available in the demo source, but there seems no format information available (may be proprietary and not needed for use).

I was able to convert the demo code to be compiled with Arduino IDE and successfully run on the demo board. And I am making progress to convert that code for use as a display class in GxEPD.
The processor on the demo board has 64k RAM, so it looks like a full graphics b/w buffer of 600*800/8 bytes for text and graphics rendering can be achieved. But there is still work ahead.

Jean-Marc

Ok thank you for your work, keep us updated please.


PS. I have edited the previous message
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Aug 30, 2018, 03:42 pm
The quoted post is here. (https://forum.arduino.cc/index.php?topic=436411.msg3846367#msg3846367) quoting still didn't work.

@Bjack795,

The answer you got, is it from Good Display or from Waveshare? This is unclear from your post.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Aug 30, 2018, 03:54 pm
The quoted post is here. (https://forum.arduino.cc/index.php?topic=436411.msg3846367#msg3846367) quoting still didn't work.

@Bjack795,

The answer you got, is it from Good Display or from Waveshare? This is unclear from your post.
Ok I recap here.

The post was the one you linked.

You did this question in both posts (that one and this one).
I prevously said "I will forward your question to Good Display" which has Waveshare as partner.

And that was their answer.

I hope it's more clear now.

Excuse me fo the confusion but it was the quote of a quote of a quote from another post :)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 08, 2018, 10:50 am
A preliminary version for Good Display HD e-papers on DESTM32-T is available: GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD)

For use with GDE060BA panel.

Tests and enhancements are ongoing.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 14, 2018, 05:52 pm
Still no news on "big screens with partial refresh" side from the company but I will keep you constantly updated.

As always thank you for your work.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 15, 2018, 08:35 am
@Bjack795

What are your plans, are you going to order that display?
Do you wait until Good Display has a solution for Arduino?

I know they are working on it, but I don't know what to expect.
Maybe just a version of their demo example for use with Arduino IDE.

Tell me when you are interested in using GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD), so I can plan the next steps, next preliminary version.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 15, 2018, 08:51 pm
@Bjack795

What are your plans, are you going to order that display?
Do you wait until Good Display has a solution for Arduino?

I know they are working on it, but I don't know what to expect.
Maybe just a version of their demo example for use with Arduino IDE.

Tell me when you are interested in using GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD), so I can plan the next steps, next preliminary version.

Jean-Marc

My purpose is an E-ink typewriter, I just solved all my keyboard problems, so with my D32 pro the only thing I need is an E-ink screen big enough (at least 7") supporting partial refresh.
The problem is that they cost a lot and I want to spend my money for something I'm sure will work.

I'm not good enough in electronics to buy a screen and try to develop a library like you're doing.
Your work is really amazing.

If I'm not sure it will be fine for the project I won't buy it for now, maybe in the future I will have more money, more time and more notions to try to help you in this huge deal.

I hope the company will make an effort to make a digestible screen for the broad Arduino community, I'm working on the company side since it's the only work I can successfully do now.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 15, 2018, 09:43 pm
Quote
I hope the company will make an effort to make a digestible screen for the broad Arduino community, I'm working on the company side since it's the only work I can successfully do now.
I am not sure if I have understood this correctly.

You work on the company side. Does it mean you work on them to influence them to provide a suitable solution for you and for us Arduino kind on users?

This is to our best and I wish you success.

Currently I am a little skeptical, and can't check their progress, as their website is not accessible.

As they are not interested in GxEPD, or support of their new e-paper displays in GxEPD, I pause work on GxEPD and GxEPD_HD.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 16, 2018, 11:21 am
I am not sure if I have understood this correctly.

You work on the company side. Does it mean you work on them to influence them to provide a suitable solution for you and for us Arduino kind on users?

This is to our best and I wish you success.

Currently I am a little skeptical, and can't check their progress, as their website is not accessible.

As they are not interested in GxEPD, or support of their new e-paper displays in GxEPD, I pause work on GxEPD and GxEPD_HD.
I'm sending them an email quite often to say that there is a community waiting their moves, I forwarded your question, I induced them to have a meeting on Arduino and they decided to postpone the resolution of this problem.
My only "talent" on this situation is to keep pressure on them and to let them know that there are people waiting.

I'm sorry to hear that you pause the effort but I understand you, please explain me clearly and extensively what you need to implement the partial refresh on their big screens which support it.

Tell me precisely what I should ask them to publish and I will ask them continuosly to make you coming back working on this wonderful library.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 16, 2018, 12:05 pm
@Bjack795,

ok, I hadn't noticed that I did not mention partial refresh in README.md of GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD/blob/master/README.md).

Partial refresh is available, and it is "fast partial update", aka differential update for black/white bitmaps and the graphics and text rendered to black/white graphics buffer.

You can find the reason for my pause in this topic post (https://forum.arduino.cc/index.php?topic=487007.msg3871624#msg3871624).

I should have called that "free promotion sample", would be quite inexpensive promotion.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 16, 2018, 01:32 pm
@Bjack795,

ok, I hadn't noticed that I did not mention partial refresh in README.md of GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD/blob/master/README.md).

Partial refresh is available, and it is "fast partial update", aka differential update for black/white bitmaps and the graphics and text rendered to black/white graphics buffer.

You can find the reason for my pause in this topic post (https://forum.arduino.cc/index.php?topic=487007.msg3871624#msg3871624).

I should have called that "free promotion sample", would be quite inexpensive promotion.
(But still not supported in the 7" display right?)

Ok so of course if you don't have the display you can't work on it.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 16, 2018, 01:53 pm
There is no 7" e-paper display with parallel interface afaik.
There is an 8" parallel IF e-paper, but no example for the DESTM32-T so far.

The controller on the 7.5" SPI e-paper does not support differential update.
Differential update and grey levels or 3-colors are mutually exclusive (with the physical method used?).
Most likely the controller IL0371 does not have the option of double buffer for differential update, so even with a waveform table for black/white only, differential update couldn't be achieved.

With the DESTM32-T you can select between different waveform tables.
The demo example has one waveform table for black/white differential update and one waveform table for 16 grey levels. If you try to use differential update with grey level data, the result is a mixture of previous and actual picture.

The DESTM32-T gives you the best of the 2 worlds, black/white and grey levels, and I think you can have pieces of both on the same display, but parts with grey levels don't work with differential update.

But with DESTM32-T even full update is in less than 1 second!
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 19, 2018, 06:01 pm
So what screen do you suggest for my purpose and for the future developments?
Because I have patience but this could take years.
What is the best screen, around that dimension, for typing?

And as I told some posts ago, I can't understand how can the kindle paperwhite screen allow typing (for notes etc) and other manufacturers haven't found a way to port the same for Arduino world. (I know about kindleberry but it's a software hack)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 19, 2018, 07:01 pm
Right now the GDE060BA with the DESTM32-T is the best and only choice. And it costs less than a Kindle.
I expect there will soon be a demo example for the 8" parallel IF for DESTM32-T.
Waveshare has a 9.7" on offer, but no demo yet.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 19, 2018, 08:18 pm
Right now the GDE06BA with the DESTM32-T is the best and only choice. And it costs less than a Kindle.
I expect there will soon be a demo example for the 8" parallel IF for DESTM32-T.
Waveshare has a 9.7" on offer, but no demo yet.
I can't find it on the good display website, only on alibaba, and no refresh data on alibaba.

Is it supported by your library?

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 19, 2018, 08:49 pm
9.7inch-e-paper-hat (https://www.waveshare.com/product/mini-pc/raspberry-pi/hats/9.7inch-e-paper-hat.htm)
http://www.e-paper-display.com/products_detail/productId=363.html (http://www.e-paper-display.com/products_detail/productId=363.html)

Would like to, but don't expect to get a sponsor.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 19, 2018, 11:22 pm
9.7inch-e-paper-hat (https://www.waveshare.com/product/mini-pc/raspberry-pi/hats/9.7inch-e-paper-hat.htm)
http://www.e-paper-display.com/products_detail/productId=363.html (http://www.e-paper-display.com/products_detail/productId=363.html)

Would like to, but don't expect to get a sponsor.
The questions were about your suggested 7" screen
GDE06BA
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 20, 2018, 06:25 am
A preliminary version for Good Display HD e-papers on DESTM32-T is available: GxEPD_HD (https://github.com/ZinggJM/GxEPD_HD)

For use with GDE060BA panel.

Tests and enhancements are ongoing.

Jean-Marc

6 inch b/w e-paper display with parallel interface, with 16 grey levels. GDE060BA, name fixed, sorry.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 20, 2018, 09:32 am
6 inch b/w e-paper display with parallel interface, with 16 grey levels. GDE060BA, name fixed, sorry.
It seems nice, even though a little bit small.
 
What is the refresh time for a small portion? (character typing refresh time for example)

EDIT: 260 ms for the entire screen
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 20, 2018, 10:01 am
Ok I'm getting more deeply into it.
I'm looking at the code and I'm trying to find a guide for the hardware connection to my D32 pro of the DESTM32-T panel.

I know it could be boring but in the demo example maybe could be useful to comment quite every command, for example:
Code: [Select]

display.setRotation(1); //1 is the value for the rotation etc.....

display.fillScreen(GxEPD_WHITE); // here I'm doing this thing etc...


Because it's not immediate to come back to the library for a "simple user" maybe two words can make this library even more useful.

Beside this, it is a very nice work, congratulations.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 20, 2018, 11:17 am
The DESTM32-T is not a panel, it connects to the e-paper panel.

It is a complete system, that can run the demo example, or the GxEPD_HD_TestExample, or an application using the GxEPD_HD library.

You would need to develop an example, a bridge application, to connect to your external processor.

But you lost me anyway, as I said, I take a break from this work. GxEPD_HD will remain in this initial preliminary state.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 20, 2018, 02:51 pm
The DESTM32-T is not a panel, it connects to the e-paper panel.

It is a complete system, that can run the demo example, or the GxEPD_HD_TestExample, or an application using the GxEPD_HD library.

You would need to develop an example, a bridge application, to connect to your external processor.

But you lost me anyway, as I said, I take a break from this work. GxEPD_HD will remain in this initial preliminary state.

Jean-Marc

So let's make some order.

1) The library (as it is) is working for the GDE060BA?

2) I understod that your problem was to work on screens you don't have, so I thought you were talking about new screens implementation

3) Your demo code must be loaded on the DESTM32-T by the arduino IDE?

4) The DESTM32-T has some serial ports to be connected to a standard arduino board?
Title: Re: Good Dispay ePaper for Arduino
Post by: olup on Sep 24, 2018, 01:38 pm
Hello there! Just to understand, your library covers (I am just talking black and white displays here) :

Spi screens from good display, even the larger 7.5. You achieve partial refresh on non partial refresh enabled displays (like the 7.5) but it's not that quick and could damage the display. Partial refresh on the smaller enabled display works good .

You also cover parallel displays (like the 6 inch 800 or 1024) but with the help of the huge red demo board. Here partial refresh works good ?

As I need a 6i quick partial refreshed display I will opted for the parallel one. But the demo board is cumbersome.

In a theorical view, can the arduino drives a parallel screen directly, without the demo board ? Can a raspbery pi do the same ?

Thank you very much for your insights !
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 05:02 pm
Hi olup,

Quote
Just to understand, your library covers (I am just talking black and white displays here) :
Spi screens from good display, even the larger 7.5. You achieve partial refresh on non partial refresh enabled displays (like the 7.5) but it's not that quick and could damage the display. Partial refresh on the smaller enabled display works good .
Yes, I support SPI e-paper displays from Good Displays that I have. The controllers of all these displays support update of screen parts, with the exception of the 1.54" 200x200 3-color, without danger of damage. Fast partial update, aka differential update is only supported by the small b/w displays (1.54, 2.31, 2.9) and the 4.2". The 4.2 officially did not support fast partial update, but the actual demo from Good Display also supports it now.

Quote
You also cover parallel displays (like the 6 inch 800 or 1024) but with the help of the huge red demo board. Here partial refresh works good ?
No, the new library GxEPD_HD supports only the 6" 800x600 with the DESTM32-T red evaluation board.
The 1024x758 could be supported, but someone would need to donate one to me.
Partial refresh works good.

The (larger) red DESTM32-L evaluation board does not support partial refresh, and I no longer support it in GxEPD (now only for SPI e-papers).

Quote
In a theorical view, can the arduino drives a parallel screen directly, without the demo board ? Can a raspbery pi do the same ?
No, not directly. It would need either the TCON part of the DESTM32-T (DESTM32-Tcon-11) and a processor with many IO pins, or an equivalent board as the Tcon-11. GxEPD_HD supports only the DESTM32-T system. Read through earlier posts for more information.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 24, 2018, 06:16 pm
Excuse me but can the DESTM32-T be connected to an Arduino-based board in order to receive inputs and drive it to the screen?
I mean serial communication or something else?
(It's one of my questions above)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 06:25 pm
Yes, there are free pins available for serial communication.

Quote
It is a complete system, that can run the demo example, or the GxEPD_HD_TestExample, or an application using the GxEPD_HD library.

You would need to develop an example, a bridge application, to connect to your external processor.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Sep 24, 2018, 06:27 pm
Hi , I am trying to display an image  on the 3 color(red) 7.5 inch waveshare epd , The demo examples in the library  images are running fine on my esp32 board ,

now I  am trying to display my own image using    display.drawExamplePicture_3C(BitmapPicture_3C, sizeof(BitmapPicture_3C));

but whatever i am changing the content of BitmapPicture _3C.h file , there is no effect on the image displayed , the same default image is getting displayed .

Can you please tell me how to display my own  3 color image ? ( I followed the instructions given in   https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT_(B)#How_to_display_an_image to get the image array )

Thank you
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 24, 2018, 06:30 pm
Yes, there are free pins available for serial communication.

Ok so in principle I can
Send the characters from my D32 pro to the DESTM32-T.

Program the DESTM32-T to receive the characters and to print them using your library

(one doubt, the code can be sent to the DESTM32-T via Arduino IDE as well?)


Ps.
I hadn't seen the quote, so excuse me
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 06:59 pm
@flyingbaloon

What processor/board are you using? Did you put the image data in PROGMEM?

You could put your complete example into a zip-file and post it, so I could analyze your problem.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 07:05 pm
@Bjack975

Quote
(one doubt, the code can be sent to the DESTM32-T via Arduino IDE as well?)
Don't understand. Do you mean the program code?

I use STlink for program upload. I have not tried to load over serial, but the board has USB-to-serial.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 24, 2018, 07:25 pm
@Bjack975

Don't understand. Do you mean the program code?
Yes the code, ok I have to use STlink.
The Serial command should be the same of the arduino one or not?
(Serial.begin etc)

I use STlink for program upload. I have not tried to load over serial, but the board has USB-to-serial.
What do you mean with "to load over serial" and with "USB-to-serial"?
Can I simply use some TX/RX serial pins as usual?

I always must remember you that I'm quite a beginner into electronics so sometimes I need a little bit more to get those that for you are simple and basics concepts.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 08:10 pm
Maybe you start by telling us what processor and board you use and would connect to the DESTM32-T system. It is already a big progress that you and I both understand that this is what you want or need to do.

The processor of the DESTM32-T has 2 hardware serial connections known as UART (asynchronous serial connection), like an Arduino MEGA. UNO has only one.

Like on the Arduino UNO and MEGA, one serial connection has a UART to USB connection chip, so you can connect it to the USB port of a PC. The other one is just 2 io pins, A9 and A10.

But I really don't like to act as a teacher, there are schematics downloadable for the DESTM32-T system, and you find information about STM32 processors on the internet. And then there is the whole processor section of the Arduino Forum, and more forums for STM32.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 24, 2018, 08:24 pm
Maybe you start by telling us what processor and board you use and would connect to the DESTM32-T system. It is already a big progress that you and I both understand that this is what you want or need to do.

The processor of the DESTM32-T has 2 hardware serial connections known as UART (asynchronous serial connection), like an Arduino MEGA. UNO has only one.

Like on the Arduino UNO and MEGA, one serial connection has a UART to USB connection chip, so you can connect it to the USB port of a PC. The other one is just 2 io pins, A9 and A10.

But I really don't like to act as a teacher, there are schematics downloadable for the DESTM32-T system, and you find information about STM32 processors on the internet. And then there is the whole processor section of the Arduino Forum, and more forums for STM32.
Thank you.
I've written like 10 times that I'm using the wemos D32 pro.
I know what UART are since I'm using on D32 the second hardware serial port for the keyboard.
So these concepts were already clear but I didn't understand your words.
I know the concepts maybe but not all the ways to express the same idea.
For example of the "serial to USB" I got that was the same of Arduino one, that is occupied in programming process etc.

You don't have to act as a teacher, only if you refer to some concepts with different words I ask you if you can clear my mind.

Lastly I could ask you if also on the DESTM32-T can be used the Serial library so that the Serial.begin, Serial.print etc are available?

I love answer questions and sometimes I do this as work on my field, but it can be stressful so I thank you for the patience all the time and you're free to not answer if you think that's enough.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 24, 2018, 09:17 pm
Serial is a standard library with the Arduino IDE. It is available on all platforms supported by the Arduino IDE.

I am not going to check, but I think I read several times D3 or D32, but certainly not 10 times wemos d32 pro. BTW what is Wemos D32 pro? ESP32? ESP8266?
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 24, 2018, 09:30 pm
Serial is a standard library with the Arduino IDE. It is available on all platforms supported by the Arduino IDE.

I am not going to check, but I think I read several times D3 or D32, but certainly not 10 times wemos d32 pro. BTW what is Wemos D32 pro? ESP32? ESP8266?
It an ESP32 based board Wemos D32 pro (https://wiki.wemos.cc/products:d32:d32_pro)

Not on this thread but counting this and the other one, I wrote it a lot.
But I love answering questions so no problem.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Sep 25, 2018, 07:49 am
I am working on an esp32 board by TTG0 (https://www.aliexpress.com/item/TTGO-T5s-V1-9-ESP32-2-7-EPaper-Plus-Module-for-Alexa-I2S-DAC-MAX98357A-MEMS/32867880658.html?spm=2114.10010108.1000013.4.60c55fafxbEOuM&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.99734.0&scm_id=1007.13339.99734.0&scm-url=1007.13339.99734.0&pvid=45ff9c70-50a6-493b-8bcc-ce54bcac0825)


the demo code  for GxGDEW075Z09  works fine on the arduino IDE , when  i select board as M5stack-core-esp32  and the relevant pinouts are  rst -16 , dc -17 , cs-5 , busy -4 , sck-18 , mosi-23


i tried to change content of the file BitmapPicture_3c.h located in GxGDEW075Z09 folder , but it still shows the old image . please find the attached zip

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 25, 2018, 08:54 am
@flyingbaloon,

Code: [Select]

    // to full screen, filled with white if size is less, for 3-color example bitmaps
    void drawExamplePicture_3C(const uint8_t* bitmap_3C, uint32_t size_3C, int16_t mode = bm_normal);


This method is intended for the 3-color example bitmap from the Good Display demo code.
I do not know how Good Display has created this bitmap example, it seems to have a special encoding.
Added: the format used is 2 bits per pixel, one for b/w one for c/w, order ?, code says: 11 : black, 00 : white, 10, 01 : red. This format gets expanded to the 4 bits per pixel used by the controller.

Most likely the method described by Waveshare produces a different bitmap.

The method is intended for full screen bitmaps. If you look at the size of your bitmaps, the sizes are much smaller than the original.

Still I would expect you get some new picture displayed, distorted and mostly filled with white.
As you say this is not the case, I assume you did not replace it in the library path, from where the bitmap is included (#include with filename in angle brackets <>).

It may be easier to separate your picture into b/w and color/white part and produce 2 monochrome bitmaps, and use method

Code: [Select]

    // to full screen, filled with white if size is less, no update needed, black  /white / red, general version
    void drawPicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size, int16_t mode = bm_normal);


for full screen.
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Sep 25, 2018, 06:02 pm
Hi , Zingg

I am working on an esp32 board  with Arduino  using the  GxGDEW042T2 e-ink display  and  found problem with partial update when I use Wifi and many other libraries as there's some black pixels showed around and is not stable as the code you provided in the library.
I'm trying to find the problem and found the power from USB is not enough but when I plugged the board to external adapter , the pixels got increased and showed very bad partial update and background and values all come together and faded so badly.

will be so grateful for any advice as i'm totally stuck :(
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 25, 2018, 06:34 pm
Hi WegzZ,

Try to analyze this systematically step by step, starting from test example and then adding or enabling additional parts (hw and sw) one by one.

Measure voltages, maybe add a scope.

Provide some pictures, showing your wiring and the effect on the display.

Does the effect occur after some time, or soon after start?
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 25, 2018, 07:42 pm
I was looking better at your GxEPD_HD library and I've noticed that in the readme files the connection references are missing, while in the GxEPD the hardware connections are well explained and exposed.
For the HD library are valid the same connections or this is only because the HD is a beta version and you stopped your work?
(I mean the connectinghardware.md file)
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Sep 25, 2018, 07:52 pm
thank you , followed your advice and got it to work .  
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 25, 2018, 09:13 pm
@Bjack798,

For the connection of the display Good Display has a specification document.
There is no need to document this in GxEPD_HD.

And yes, I have paused work, and you need to be careful to avoid that I stop to answer your questions.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 25, 2018, 10:31 pm
@Bjack798,

For the connection of the display Good Display has a specification document.
There is no need to document this in GxEPD_HD.

And yes, I have paused work, and you need to be careful to avoid that I stop to answer your questions.
You're trying to threaten me?
I do questions, you're free to answer or not but this is the aim of a forum.
I've always been polite also when you showed off your superior knowledge, that is clear to me and you have my respect.
I've always thanked you and asked politely so I don't deserve these words from you.

I repeat that you're free to answer or not, but I don't appreciate the threats.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 26, 2018, 12:59 pm
Anyway I'm continuosly asking because on the Good Display site the documentation is down.
So for example you can't download GDE060BA specifications. There is the same problem with some fo the demo kit documents.

But it's easier telling that I should be careful to make questions than trying to understand why there are so many questions on the same topic.

"There is the documentation" nope there would have been the documentation but there is not
try for believing (http://www.e-paper-display.com/download_detail/&downloadsId=232.html)

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 26, 2018, 01:19 pm
http://www.e-paper-display.com/download_detail/downloadsId=560.html (http://www.e-paper-display.com/download_detail/downloadsId=560.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Sep 26, 2018, 02:34 pm
http://www.e-paper-display.com/download_detail/downloadsId=560.html (http://www.e-paper-display.com/download_detail/downloadsId=560.html)
Thank you, but this file is available on the website and I've downloaded it a month ago.

I was talking about this schematic of the board (I need to know where the UARTS are)

http://www.e-paper-display.com/download_detail/downloadsId=531.html (http://www.e-paper-display.com/download_detail/downloadsId=531.html)

and these specifications of the screen
http://www.e-paper-display.com/download_detail/&downloadsId=232.html (http://www.e-paper-display.com/download_detail/&downloadsId=232.html)

both links have been down for weeks
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Sep 26, 2018, 03:10 pm
Hi Zingg,
I have gone through your advice of shifting the code to the working example you made and it works,
I've added SmartConfig and OTA  code back to the example...
the output of both screens in attachments although both codes are same it's just the code directory ...

Still don't know from where the problem that come to the screen ..

Thanks Zingg
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 26, 2018, 03:35 pm
@WegzZ,

please forgive me that I don't understand your post.

Same code producing different results depending where the source code comes from?

If you need help please say so, and provide more information, e.g. complete or shortened example showing the effect in a zip file.
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Sep 28, 2018, 12:42 pm
Hi Zingg ,
I'm sorry for the late replay but the problem was in calling display.update() twice , one with the configuration of the screen orientation &  background  & textColor and the other is just called after, I used to do this as with new screen installed  the screen shows faded background but  i used it in other screens which has no partial update and it was working good ...
the problem now is known but how can i get rid of the faded screen in other ways ?

Thanks a lot
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 28, 2018, 01:46 pm
@WegzZ,

Which library and which version of the library do you use?
It is also helpful if you repeat the panel used, 4.2" b/w, so any reader does not need to scroll backwards.

Calling display.update() twice with the same content in the graphics buffer should never produce strange results.

I think I can't help you without having your code. If you could reduce it to the minimum that shows the effect would make it easier.

One reason for faded screen is if you don't call powerOff() after partial update, and some time passes until the next (partial) update.

Another reason could be if you don't do a full update after many partial updates about every hour except for the 1.54", where 6 hour is ok. See PartialUpdateTest.

And the first update after a hardware power up needs to be a full update; the actual version follows this automatically with a full screen partial update, to initialize both parts of the controller buffer, actual and previous, to make them identical for any following partial update (which uses differential update only). sorry, this is complicated!
Title: Re: Good Dispay ePaper for Arduino
Post by: olup on Sep 28, 2018, 07:58 pm
Hi there,

Thanks @ZinggIM for your answer - didn't have notificaion to tell me, hence the delay...

It seems that the two piece red board of Good display is the only ready-made board to drive a parallel display on the market. I am considering developing my own, based on SrpitesMod design (double shift register) and the use of a Texas Instrument chip for driving power. But thats the future.

The other way for a similar results is to use waveshare HAT for 7.5i screen, and use the SPI interface and waveforms to "overclock" the display and use partial refresh. However it seems to me that this is still slower than using the parallels displays

For now, I'll probably use the red board, for prototyping, and maybe if I can, use only the small top with many gpio and have myself something nice.

There is absolutely no documentation around this board as the GD site is real buggy.

So my question is :

You HD librairy was is a WIP and I understood you are not improving it anymore, which is fine because I feel I can take it from there on my needs (If I do so, i'll PR it to share).

I'd just like to confirm : The librairy as it is can roughly interract with the full red board controller from GD ? It can manage basic partial rerender ? (I am talking pixel level - primitive, font and the all shebang I'd like to implement myself). It works with the 800*600 screen ? (i'd implement the 1024 one if I need it)

To your experience and perspective, this setup can manage quick partial refresh on small scale ? Do we know enough of the waveforms, LUT and stuff to drive the screen eficiently ?

Thank you very much !
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 28, 2018, 08:15 pm
@olup,

Please restate your questions in a form that is pleasant to read and can be understood by me, e.g. no unknown abbreviations.

Then I will answer concrete questions, if they are terminated with a question mark.

But I will not comment on assumptions you make, be they correct or wrong.

My library is in preliminary state, further development is partially paused, but will be continued.

It is open source, you can copy, clone or do what you like, if you adhere to the license.

I wish you success with your development, but do not expect more help from me than what I put in my library.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: olup on Sep 28, 2018, 08:39 pm
Ok my bad,

My question was just to get a quick grasp on how far your librairy went, and if it was design to interract with the big red board in two blocks that drives parallel 6i display (or if i understood it wrong).

I also thought I understood that this librairy was a Work In Progress (this is right), and that you are not developing it anymore (this is wrong, as you say it's a temporary stop), and that if I want to use the work i'll be alone with it, which is fine. I am not asking for any help, just to uderstand what was its extent, what meant "preliminary state".

I guess I can look the code, but I thought i'll ask you. Just to get an idea on how much I can re use or if i should prepare myself to code a new one from scratch.

I don't need directions, help to build or code, but I am glad for your experience.

Thanks for your wishes, I wish the same to you
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 28, 2018, 08:44 pm
Maybe to read the README.md (https://github.com/ZinggJM/GxEPD_HD/blob/master/README.md) would help for a start.
Title: Re: Good Dispay ePaper for Arduino
Post by: alienfive_1 on Sep 29, 2018, 09:49 pm
Hy, I'm new to e-paper displays as well as to the Arduino programming environment.

I bought a TTGO T5S v1.2 ... ESP32 with 2,9 inch 3 color epaper display (GDEW029Z10)


I want to get the board running with the GxEPD Version 3.0.0.

I copied the "src" Folder to the arduino lib path, installed as well ESP32 lib and Adafruit GFX-lib

I'm using Arduino 1.8.2 and tried very hard but i didn't get the sketch compiling, everytime i get these Error Messages:

Maybe if someone knows what to do, please help me

Thanks in advance
alienfive

Code: [Select]

Arduino: 1.8.2 (Windows 10), Board: "TTGO LoRa32-OLED V1, 80MHz, 921600, None"

Archiving built core (caching) in: C:\Users\Andi\AppData\Local\Temp\arduino_cache_556741\core\core_esp32_esp32_ttgo-lora32-v1_FlashFreq_80,UploadSpeed_921600,DebugLevel_none_73337b6751fe51781681b9e74194b714.a
sketch\GxEPD_Example.ino.cpp.o:(.literal._Z5setupv+0x18): undefined reference to `GxGDEW029Z10::init(unsigned int)'

sketch\GxEPD_Example.ino.cpp.o:(.literal._Z17showBitmapExamplev+0x20): undefined reference to `GxGDEW029Z10::drawPicture(unsigned char const*, unsigned char const*, unsigned int, unsigned int, short)'

sketch\GxEPD_Example.ino.cpp.o:(.literal._Z17showBitmapExamplev+0x24): undefined reference to `GxGDEW029Z10::drawExamplePicture(unsigned char const*, unsigned char const*, unsigned int, unsigned int)'

sketch\GxEPD_Example.ino.cpp.o:(.literal._Z17showBitmapExamplev+0x28): undefined reference to `GxGDEW029Z10::update()'

sketch\GxEPD_Example.ino.cpp.o:(.literal._Z8showFontPKcPK7GFXfont+0x20): undefined reference to `GxGDEW029Z10::fillScreen(unsigned short)'

sketch\GxEPD_Example.ino.cpp.o:(.literal._Z14drawCornerTestv+0x0): undefined reference to `GxGDEW029Z10::drawCornerTest(unsigned char)'

sketch\GxEPD_Example.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_io+0xc): undefined reference to `GxIO_SPI::GxIO_SPI(SPIClass&, signed char, signed char, signed char, signed char)'

sketch\GxEPD_Example.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_io+0x10): undefined reference to `GxGDEW029Z10::GxGDEW029Z10(GxIO&, signed char, signed char)'

sketch\GxEPD_Example.ino.cpp.o: In function `setup()':

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::init(unsigned int)'

sketch\GxEPD_Example.ino.cpp.o: In function `showBitmapExample()':

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::drawPicture(unsigned char const*, unsigned char const*, unsigned int, unsigned int, short)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::drawExamplePicture(unsigned char const*, unsigned char const*, unsigned int, unsigned int)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::drawExamplePicture(unsigned char const*, unsigned char const*, unsigned int, unsigned int)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::update()'

sketch\GxEPD_Example.ino.cpp.o: In function `showFont(char const*, GFXfont const*)':

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::fillScreen(unsigned short)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::update()'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::drawCornerTest(unsigned char)'

sketch\GxEPD_Example.ino.cpp.o: In function `drawCornerTest()':

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::fillScreen(unsigned short)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::update()'

sketch\GxEPD_Example.ino.cpp.o: In function `_GLOBAL__sub_I_io':

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxIO_SPI::GxIO_SPI(SPIClass&, signed char, signed char, signed char, signed char)'

C:\Users\Andi\Documents\Arduino\libraries\src/GxEPD.h:71: undefined reference to `GxGDEW029Z10::GxGDEW029Z10(GxIO&, signed char, signed char)'

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board TTGO LoRa32-OLED V1.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 29, 2018, 09:58 pm
@alienfive_1

Remove the src folder from the lib path.
Download the GxEPD library as zip file.
Install it with library manager "Add .ZIP Library..."

This is the standard method to add libraries that are not directly available with library manager.

If you still get these errors, install the actual version of the Arduino IDE.
Title: Re: Good Dispay ePaper for Arduino
Post by: alienfive_1 on Sep 30, 2018, 04:21 pm
Thank's for the help !!!


Now it's working fine.
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 17, 2018, 05:36 pm
Hello ,

I'm trying to use a GDEW042T2 epaper screen with a Nucleo l476RG board with Arduino IDE , but i don't find how to connect it.

Normally on tis board SPI pins are :

SS = D10 = PB6
MOSI = D11 = PA7

MISO = D12 = PA6

SCK = D13 = PA5

 

on SPI1


What pin do i need to use ? or configure

I try to use it with an lolin esp8266 and all work find with the 3 library you provide.

Thanks
Top
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 17, 2018, 08:35 pm
Hi fraber,

I don't know actually, I will try to find out, but I don't have any Nucleo I476RG.

Most likely GxEPD will not compile for your board, as it may not be supported by GxIO_SPI.

GxEPD2 might work; you need to find out the pins for the standard default HW SPI (pins_arduino.h).
You just choose the other pins and specify them in the constructor.
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 17, 2018, 11:26 pm
Thanks for your answer !

Where do i need  to make the modifications ?

Here are the SPI pins specifications in the PeripheralPins.c for the L476RG Board


//*** SPI ***

#ifdef HAL_SPI_MODULE_ENABLED
const PinMap PinMap_SPI_MOSI[] = {
    {PA_7,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
    {PB_5,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
//  {PB_5,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {PB_15,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PC_3,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PC_12,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {NC,    NP,    0}
};
#endif

#ifdef HAL_SPI_MODULE_ENABLED
const PinMap PinMap_SPI_MISO[] = {
    {PA_6,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
    {PB_4,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
//  {PB_4,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {PB_14,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PC_2,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PC_11,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {NC,    NP,    0}
};
#endif

#ifdef HAL_SPI_MODULE_ENABLED
const PinMap PinMap_SPI_SCLK[] = {
    {PA_5,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)}, // LED
    {PB_3,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
//  {PB_3,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {PB_10,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PB_13,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PC_10,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {NC,    NP,    0}
};
#endif

#ifdef HAL_SPI_MODULE_ENABLED
const PinMap PinMap_SPI_SSEL[] = {
    {PA_4,   SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
//  {PA_4,   SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {PA_15,  SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
//  {PA_15,  SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
    {PB_9,   SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {PB_12,  SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
    {NC,    NP,    0}
};
#endif
Title: Re: Good Dispay ePaper for Arduino
Post by: noelportugal on Oct 18, 2018, 02:24 am
Hello,

I'm struggling to display a remote BMP on a 2.7inch Good display. I'm using esp8266 and the GxEPD2 Wifi example BMPs work fine.

Do you have a suggestion on what is the best BMP settings to work with? size, bit depth, etc?

I created a service that converts any image to BMP in order to display it on e-ink...
You may try my server:

// 264 x 176 bmp
curl -F 'file=@YOURIMAGE.png' https://image2bitmap.devcloud.site/background264
 // 128 x 128
curl -F 'file=@YOURIMAGE.png' https://image2bitmap.devcloud.site/icon128
/ 64 x 64
curl -F 'file=@YOURIMAGE.png' https://image2bitmap.devcloud.site/icon64

When I modify the GxEPD2 Wifi example to pull any of the resulting images I just get a black rendering on the e-ink.

Any pointers?

Thanks!

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 07:21 am
@noelportugal,

most likely you use bitmaps with depth < 16 but missing palette information.

Search for BMP in Wikipedia for bitmap format information.

I currently have no time to experiment with your tool.

You could post one of your bitmaps, or diagnostic output.
Title: Re: Good Dispay ePaper for Arduino
Post by: noelportugal on Oct 18, 2018, 07:25 am
Hi,

Here is one my BMP:

(https://image2bitmap.devcloud.site/backgrounds/1539769348958-lion.bmp)

URL: https://image2bitmap.devcloud.site/backgrounds/1539769348958-lion.bmp
fingerprint: 39 C4 46 A5 C8 93 C1 75 69 EF C2 7A 5A B7 C3 19 3C C6 17 0D

Thanks for your help!

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 07:45 am
@fraber,

STM32 packages for Arduino are good in information hiding.

GxEPD_Example compiles for Board: "Nucleo-64", Board part number: "L476RG".

The SPIClass of this package creates a static instance "SPI", which uses MISO, MOSI and SCK.

But I didn't find quickly where MISO, MOSI and SCK are defined.

You could create a small Arduino program that prints the port numbers for these to Serial, to find out.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 08:45 am
@noelportugal,

your example has depth=24, looks good, and should work. I will try later.

What board/processor do you use? ESP8266 has a known issue with TLS (https:) with big (>~32k) bitmap files. You would see this in diagnostic output.

depth=1 for monochrome would reduce the size.
Title: Re: Good Dispay ePaper for Arduino
Post by: noelportugal on Oct 18, 2018, 09:23 am
Hi, I think my issue is due to https and heap memory :( I think I will change to get the file from plain http.

Will keep trying...Thanks!
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 10:30 am
I have just installed the ESP8266 package on a new notebook, and I see now examples using BearSSL.
The suggested fix for the TLS issue (WiFiClientSecure) is to use BearSSL on this platform. I will take a look at this later.

They have not yet replaced the example HTTPSRequest with BearSSL.

Aha, looks as simple as this, to start with: (from example BearSSL_MaxFragmentLength)
Code: [Select]
BearSSL::WiFiClientSecure client;


BearSSL on the ESP8266 must have been around for some time, but I didn't update the package on my work notebook until recently. Arduino IDE does not inform about package updates like for libraries.

22.10.2018: BearSSL doesn't help with this issue, it gets worse instead. This is an open issue in https://github.com/esp8266/Arduino
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 18, 2018, 10:54 am
@fraber,


But I didn't find quickly where MISO, MOSI and SCK are defined.



SPI pins are defined for windows here

\Users\xxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.2.0\variants\NUCLEO_L476RG
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 11:19 am
@fraber,

I see the pinmap e.g. for MISO: const PinMap PinMap_SPI_MISO[], but not the definition of the symbol MISO, which is used e.g. in SPI.cpp.

But SPI certainly is the same as hw SPI1, so it is the first entry in this table.

So what is your question, as you know the pins?
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 18, 2018, 11:54 am
I'm unable to make it working on arduino and STM32L476RG

i connected the despi-co2 like this


// mapping suggestion for AVR, UNO, NANO etc.
// BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 13, DIN -> 11

If i use it a wemos d1 all work fine
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 01:36 pm
@fraber,

ok, lets try to get a little more systematic.

Quote
I'm trying to use a GDEW042T2 epaper screen with a Nucleo l476RG board with Arduino IDE , but i don't find how to connect it.

Normally on tis board SPI pins are :

SS = D10 = PB6
MOSI = D11 = PA7

MISO = D12 = PA6

SCK = D13 = PA5

 

on SPI1
Did you try the above, and it didn't work? Which library and example did you try?
Did you look at diagnostic output in Serial Monitor?
Are the io pins 3.3V on your board?

I would expect it to work with GxEPD without modification, maybe, the #else part would be used like for AVR Arduinos. But I don't know if the method used to set SPI speed works on this board.

Quote
I'm unable to make it working on arduino and STM32L476RG
Which Arduino did you try? Did you use series resistors in case of a 5V io Arduino?

Added: I took a closer look into my drawer with processor boards, and there it is, a box with 2 nucleo boards, the NUCLEO-F103RB I originally used with my first Good Display e-papers as alternative to the DESTM32-S, and a Nucleo-64 STM32L476RG 64 PINS I have not yet used.

So I can and will try myself, soon.
Title: Re: Good Dispay ePaper for Arduino
Post by: Birrer on Oct 18, 2018, 02:21 pm
Hi,

I have the display GDEM0154E97LT with ic driver IL3895 from dalian good display: 152x152px, 1,54" b/w, partial refresh, -20°C to 50°C op. temp. range.

But I found no evidence that this display is supported by your library. Is that right?

@ZinggJM how complicated is it to add support for this display? I could send you one for developing and support you.
I'm working with ESP32 espressif sdk or arduino framework.

Hope to here from you.

I'm not sure if this is the right channel for that, but found nothing different.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 18, 2018, 02:40 pm
Hi Birrer,

Yes, this is the topic for this question, and yes, it is not supported.

The controller is the same as for the GDE0213B1, so the effort would be limited.

You could download the demo code from Good Display and try to adapt a copy of the GxGDE0213B1 class.

If you would like to sponsor me with this e-paper, I could support it in my libraries GxEPD and GxEPD2; send me a PM and I send you my address.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 19, 2018, 09:36 am
@fraber,

GxEPD actually doesn't work with Nucleo-64 STM32L476RG 64 PINS.

GxEPD2 does work with Nucleo-64 STM32L476RG 64 PINS, if template instance creation for this board is added to the example.

I just added this unconditionally for test after the conditional pieces:

Code: [Select]
GxEPD2_BW<GxEPD2_420, GxEPD2_420::HEIGHT> display(GxEPD2_420(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));


I compiled with:

Board: "Nucleo-64"
Board part number: "Nucleo L476RG"
...
Upload method: "Mass Storage"

Same pins as for Arduino UNO, I used the proto board I had made for UNO (with series resistors for UNO).

Jean-Marc

(https://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=278402)
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 19, 2018, 10:48 am
Thanks ZinggJM !

It worksss !!Thanks !!
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 19, 2018, 11:32 am
Thanks for the feedback! I can live with exclamation points in lieu of Karma points.  :)
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Oct 19, 2018, 11:53 am
 ;)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2018, 03:42 pm
GDEW1248T3 a 12.48 inch large e-ink display with SPI.

http://www.e-paper-display.com/products_detail/productId=414.html (http://www.e-paper-display.com/products_detail/productId=414.html)

http://www.buy-lcd.com/index.php?route=product/product&product_id=58944 (http://www.buy-lcd.com/index.php?route=product/product&product_id=58944)

http://www.buy-lcd.com/index.php?route=product/product&product_id=58971 (http://www.buy-lcd.com/index.php?route=product/product&product_id=58971)

I had a first look at the specification and the demo code.
The controller seems to support partial window addressing and most likely partial update.
"fast partial update" would require a special waveform table, seems not supported.

The price is high for the usual Arduino user, so I see no use to add support to GxEPD or GxEPD2, but who knows if there would be a sponsor or donator.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Oct 31, 2018, 04:37 pm
GDEW1248T3 a 12.48 inch large e-ink display with SPI.

http://www.e-paper-display.com/products_detail/productId=414.html (http://www.e-paper-display.com/products_detail/productId=414.html)

http://www.buy-lcd.com/index.php?route=product/product&product_id=58944 (http://www.buy-lcd.com/index.php?route=product/product&product_id=58944)

http://www.buy-lcd.com/index.php?route=product/product&product_id=58971 (http://www.buy-lcd.com/index.php?route=product/product&product_id=58971)

I had a first look at the specification and the demo code.
The controller seems to support partial window addressing and most likely partial update.
"fast partial update" would require a special waveform table, seems not supported.

The price is high for the usual Arduino user, so I see no use to add support to GxEPD or GxEPD2, but who knows if there would be a sponsor or donator.

Hi ZinggJM!

I can't find the full refresh rate info in the specs.

Do you think that the waveform tables can be modified? (not a closed driver board as the Waveshare 7.5")

Anyways now I can't spend these money but if you still will need a sponsor when I'll have some money to spend I will do it with pleasure.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2018, 05:03 pm
Hi Bjack795,

there might be a chance to modify the wavetables, although they are not documented.

I got these answers from Good Display:

Quote
As for 12.48 inch e paper display,Sorry we can't  provide you.
Because our customer open this model, it belong them. so I can't provide you controller documents,
Quote
For 12.48" e-paper, now couldn't support partial refresh.
This e-paper looks interesting, and I would be tempted to buy it with the demo board. I could afford it.
But after the "big company" answer from Good Display about sponsoring the small e-papers to support for Arduino users, I currently have no interest to buy from Good Display.

If your enquiry for interest in big e-papers is successful, there might be other donators willing to step in.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Oct 31, 2018, 05:29 pm
Because our customer open this model, it belong them. so I can't provide you controller documents,

I didn't get their answer, they said that only a customer can have those documents or nobody can?


Quote
But after the "big company" answer from Good Display about sponsoring the small e-papers to support for Arduino users, I currently have no interest to buy from Good Display.
Also this is not clear, they're sponsoring you the small epapers?

Quote
If your enquiry for interest in big e-papers is successful, there might be other donators willing to step in.
We will see, I'm just curious to know the real need of those screens, out of the "shelf labels" and the "giant advertisement" world of E-ink.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2018, 07:00 pm
See this post (https://forum.arduino.cc/index.php?topic=487007.msg3871624#msg3871624) for your second question.

The rights to the documents seem to belong to the original customer. They didn't event want to tell me the name or model of the controller used. But the commands look familiar or similar to the partial update capable controllers.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Oct 31, 2018, 08:20 pm
See this post (https://forum.arduino.cc/index.php?topic=487007.msg3871624#msg3871624) for your second question.
What it is pointed in this linked post is also the aim of mine (not very followed) question on large screens.

The community must be united in these things, sometimes I make too many questions but certainly I totally agree with you that a screen must be supported by the library before buying it (development purposes excluded, like you sponsors etc) and they should understand that, without full support, nobody is interested in their products.

Quote
The rights to the documents seem to belong to the original customer. They didn't event want to tell me the name or model of the controller used. But the commands look familiar or similar to the partial update capable controllers.
I misunderstood the "customer" word, of course they talked about a customer company, which wants to keep the documents closed.

In my opinion the important thing is the market, if a lot of people are interested in a product (e.g. large or small screens) the developer could have the power to obtain for free a 20€ screen for writing the library.

If they believe that nobody in the community is interested in that product they are not interested on giving away anything.


So the aim is:
1) to understand what people want (both your E-ink displays posts are centred in this way)

2) to make the companies aware of this demand to help the developer in writing the needed environment all around their products.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2018, 08:50 pm
I disagree partly, because you don't understand the e-paper display market.

Good Display sells a large amount of e-paper displays to large customers.

The hobbyist market is a small segment added, and it is thanks to some sales persons that these e-paper displays became available to us. And thanks to Waveshare who serve also the hobby market with their development tools and boards.

Unfortunately Good Display does not understand the hobby and Arduino market. You will understand when you see the announced Arduino solution they will provide.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Oct 31, 2018, 09:45 pm
I disagree partly, because you don't understand the e-paper display market.

Good Display sells a large amount of e-paper displays to large customers.

The hobbyist market is a small segment added, and it is thanks to some sales persons that these e-paper displays became available to us. And thanks to Waveshare who serve also the hobby market with their development tools and boards.
I completely understand this, I talked about the shelf labels and wall advertisement markets, or the kindle/kobo one.

Of course the hobbyist are a small part of their mind but my thought was another one.

This is only my opinion but I think that it's not compulsory for them to enter this market, but if you decide to enter it you should take care about the hobbyists' issues.

So I was talking about the fact that some companies (Waveshare is very keen on our world and it's not in the "blacklist" as Good Display) enter our space without changing their behaviour, so they talk to an hobbyist as they would do with amazon.

Quote
You will understand when you see the announced Arduino solution they will provide.
Did I miss some breaking news?
Title: Re: Good Dispay ePaper for Arduino
Post by: fraber on Dec 07, 2018, 04:28 pm
Hi ZinggJM ,

will you add the GDEW0154Z17 board to the GxEPD2 library.
I'm trying to make it working but was unable to make it works .

I try to change the widht and height to 152 in the library but it don't work

Regards

Francois
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 07, 2018, 05:21 pm
Hi Francois,

Quote
will you add the GDEW0154Z17 board to the GxEPD2 library.
No, I have decided that I add only e-paper displays that I have and can test with.

I had added GDEW0154Z17 to GxEPD, as it has the same controller as the GDEW0213Z16, as an exception.

With this information you have a chance to copy and adapt GxEPD2_213c for your e-paper yourself.
The size is also hardcoded in _InitDisplay()!

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 13, 2018, 12:40 pm
Hi ,
Are you planning to add support for GDEH029A1 2.9" b/w flexible epaper display from good display ?

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

Thanks .
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 13, 2018, 01:44 pm
Hi ,
Are you planning to add support for GDEH029A1 2.9" b/w flexible epaper display from good display ?

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

Thanks .
No, this is not a GDEH029A1 but a GDEW029I6F and has a different controller IL0373.

I can and will only support e-paper display I have.

It has the same controller as the 2.13 flexible b/w.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 14, 2018, 06:31 pm
ok thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: corporate206 on Dec 23, 2018, 12:43 pm

Hello -

The image shows the good-display epaper panel and the epaper hat

It has been attached to the esp32

I loaded ZinggJM's amazing GxEPD to my aruduino IDE

I wonder if I have the pin connections correct?  The pin labels on the epaper hat are unfamiliar

Is there anything else required to run a sketch on this epaper?

Thanks to everyone sharing their brilliance.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 23, 2018, 02:24 pm
Hello Eric,

I think I have the same ESP32, so I should have a chance to check your wiring. But an additional close-up picture of the connection to the processor would help. No, not the same, post a link, please.

I assume it doesn't work, as you ask to check. And if it doesn't, I would need to know which e-paper it is, post a link, please.

I see loose retainer on the FCP connector. It should be loose when inserting the flexible connector, but then you should push in on the black corners.

Quote
The pin labels on the epaper hat are unfamiliar
The pins on the DESPI-C02 correspond to the pins in my mapping suggestions, just RST is labeled RES and DC is D/C, DIN is SDI and CLK is SCK.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: corporate206 on Dec 23, 2018, 03:04 pm

Hello Jean-Marc -

Thanks for the reply.

These are the pin positions I used after reaching out to others. Indeed, the epaper hat by good-display seems to befuddle a lot of people due to the odd pin labeling. You told us in one of your posts that good-display sells large numbers of these displays to commercial customers, so I wonder if this labeling (on the epaper hat) was at the behest of one of their customers.... because I have encountered no one who understands it.

I do not have an epaper display that is compatible with your work.  I am the individual who asked if you would be willing to add one of the missing units (GDEW026T0).

I was looking for answer as to whether I have all the components required, or if a component (i.e. the epaper hat) would not work in the chain. Or, if I am missing something altogether.

Thanks for your time, Eric
Title: Re: Good Dispay ePaper for Arduino
Post by: corporate206 on Dec 23, 2018, 03:10 pm
Ok, thanks for that information; it is becoming more clear now.



The pins on the DESPI-C02 correspond to the pins in my mapping suggestions, just RST is labeled RES and DC is D/C, DIN is SDI and CLK is SCK.

Jean-Marc

[/quote]
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 23, 2018, 03:25 pm
Quote
You told us in one of your posts that good-display sells large numbers of these displays to commercial customers, so I wonder if this labeling (on the epaper hat) was at the behest of one of their customers.... because I have encountered no one who understands it
I am surprised. I had no such questions in my forum topics so far.
My wiring suggestions are for the Waveshare e-paper boards, and the inking on these boards.

The labeling is quite in line with names used on TFT SPI displays.

The DESPI-C02 is targeted to developers I think. The large number of these e-paper displays is connected directly to application boards containing the "reference circuit", the parts needed for the voltage generation.

(https://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=287109)
Title: Re: Good Dispay ePaper for Arduino
Post by: corporate206 on Dec 23, 2018, 03:29 pm
I stand corrected... you were referring to the epaper display itself.  Of course, the epaper hat would be a developer tool only -I would guess.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 23, 2018, 04:28 pm
Quote
I am the individual who asked if you would be willing to add one of the missing units (GDEW026T0).
And now you found out that this e-paper is out-of-stock and no longer available.

I was surprised about the number of e-papers Good Display has added recently to their web-pages (and the - in my view - incomplete and partially wrong information provided with).

So maybe they started to clear surplus stock. Not really good for reputation, I think.

But I was informed there are new e-paper displays coming next year, with better speed and slightly lower prices. This may be an explanation.
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Dec 23, 2018, 06:07 pm
But I was informed there are new e-paper displays coming next year, with better speed and slightly lower prices. This may be an explanation.
These are the news I wanted for Christmas  :D

Apart this I'm going very fast forward in adapting my code to the new screen and the reason is your library, so thank you.

I wish everybody a new year full of fast and cheap ePapers.

Please keep us updated!
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 23, 2018, 07:30 pm
@Bjack795,

Thank you! I wish the same to you and us all.

BTW I finally found the answer to a question you had on a hint I posted. It is in this schematics:

http://www.e-paper-display.com/download_detail/downloadsId=712.html (http://www.e-paper-display.com/download_detail/downloadsId=712.html)

I had hoped they fix it, as it took so long to get available, but no. :smiley-sad-blue:  :smiley-cry:
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Dec 23, 2018, 08:18 pm
@Bjack795,

Thank you! I wish the same to you and us all.

BTW I finally found the answer to a question you had on a hint I posted. It is in this schematics:

http://www.e-paper-display.com/download_detail/downloadsId=712.html (http://www.e-paper-display.com/download_detail/downloadsId=712.html)

I had hoped they fix it, as it took so long to get available, but no. :smiley-sad-blue:  :smiley-cry:

It's incredible! I hope that this is because of what you said (clear surplus stock) so they don't care about the details.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 23, 2018, 08:43 pm
No, this is what they thought is needed by us Arduino users, without asking (us/any?).

And when I pointed to the need of HW SPI, it obviously was too late.

At least this Arduino is switchable to 3.3V for use with e-paper. And it can run their demo code.

And DuPont gave us cables to fix this.
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Jan 06, 2019, 06:08 am
Man, I really should've done my research before buying. Bought a DESPI-co2 connector and the 2.9" flexible model from GooDisplay. Over the last week I've been tinkering around with it. I've gotten it to update, albeit glitchily and in poor quality, in the 2.13" section on the top left of the display when using the 2.13" flexible driver. I've also managed to do full refreshes of the display using the 2.9" r/w/b driver after heavy modification.

Just two minutes ago, using the 2.9" r/w/b driver I had modified I displayed small, barely readable and grainy text. It's small but it's progress. But after trial and error attempts like this over the last week, some that damaged my display (because GooDisplay did not document which resistor setting the display adapter should be on), I don't think I'll continue if my grainy issues persist. ZinggJM, can I just buy you a 2.9" flexible model, send it to you, and have you help me with the hard work?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 06, 2019, 07:24 am
@DDoled,

Did you take a look at this post: https://forum.arduino.cc/index.php?topic=487007.msg3992327#msg3992327 (https://forum.arduino.cc/index.php?topic=487007.msg3992327#msg3992327) and following?

You don't need to buy me this display, as I believe there is one on the way already, from donator lesept.

Please tell us the exact model you have (link), e.g. from www.e-paper-display.com (http://www.e-paper-display.com).
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Jan 06, 2019, 04:45 pm
Thanks for pointing me to that thread ZinggJM, I'll take a look today. If you ever need another small display I would be happy to buy it for you, I really appreciate all the work you've done on this library.
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Jan 06, 2019, 11:39 pm
So, I've been trying the solution in the thread linked and I am a little confused. I see where to change the resolution in the GxEPD2_flex.h file, but what do I change in InitDisplay()?

Also, my display had massive bars that run from top to bottom. The 2.13"  GxEPD2 example runs, presumably in the 2.13" resolution area, but has very poor contrast. The updates look incomplete and there are many stains. It doesn't look like I can show black nor white, just fuzzy grey.

The site I bought it from (epaper-display) is currently down but the ID of the display is GDEW029I6F
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 07, 2019, 02:21 pm
Ok, the GDEW029I6F is the flexible version. It uses the same controller IL0373.
The dimension parameters used in _Initdisplay() are already taken from the header file values.
Your display may need a different VCOM value; you would need to compare with the demo source.
The demo source might also use either a different wavetable, or a wavetable stored in OTP.

We can wait and see if I get samples of these new e-paper displays from Good Display.

Or alternately if a user choose to make a donation to me, to add it to GxEPD2.
I had already forgotten about your offer, it is on the previous page. I will take a look at the parameters for this display also when I get the GDEW029T5 and prepare a display class for it. So I do not know yet if I would need a GDEW029I6F to support it.
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Jan 07, 2019, 05:51 pm
Very strange, I changed the dimensions in the 213 headers file and the display continues to only refresh the 2.13" area, not the whole display. I'll take a look at the demo code and try to find the wavetable and appropriate VCOM value

Edit: I believe the VCOM value from the demo code is 0X50.
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Jan 07, 2019, 10:13 pm
I still can't get the GxEPD2 example to display on the full screen. Even though I changed the size setting in the header file, only part of the display updates
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 07, 2019, 10:22 pm
Can't help until I have the GDEW029T5. With the version for this you should get some output at least.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 16, 2019, 04:57 pm
I have released Version 1.1.2 of GxEPD2, with support for the new 2.9" b/w GDEW029T5

@DDoled,

it may work with your GDEW029I6Fdisplay also.
But the demo code from Good Display uses only the wavetable stored in the controller (OTP), and does not support "fast partial update". So the wavetable for the GDEW029T5 may give bad results with your display.
In this case you can try to modify line 27 of GxEPD2_290_T5.h

Code: [Select]
    static const bool hasFastPartialUpdate = true; // set this false for test with OTP LUT (GDEW029I6F)
Title: Re: Good Dispay ePaper for Arduino
Post by: iillyyaa2033 on Jan 20, 2019, 02:00 pm
Hello!

First of all: I'm completely newbie in Arduio, but have some skills in programming.

I have Arduino Due and GDEW075T8 display.

Tried to run GxEPD sample on my Arduino - it compiles successfuly and writes this lines in serial monitor after uploaded to board:
Code: [Select]
update : 2
⸮setup done
drawBitmap : 2
drawBitmap : 2
update : 2
drawCornerTest : 2



Also I've found some info:
- http://www.robgray.com/temp/Due-pinout-A3.png
- http://www.e-paper-display.com/download_detail/downloadsId=486.html

Please, can you explain how to connect display to arduino?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 20, 2019, 02:45 pm
Use GxEPD2 and take a look at https://github.com/ZinggJM/GxEPD2/blob/master/examples/GxEPD2_Example/GxEPD2_boards_added.h (https://github.com/ZinggJM/GxEPD2/blob/master/examples/GxEPD2_Example/GxEPD2_boards_added.h)

Code: [Select]
// mapping suggestion for Arduino DUE

// BUSY -> 7, RST -> 9, DC -> 8, CS-> 77, CLK -> 76, DIN -> 75

// SPI pins are on 6 pin 2x3 SPI header

Title: Re: Good Dispay ePaper for Arduino
Post by: iillyyaa2033 on Jan 20, 2019, 04:07 pm
Hmm. At this line
Code: [Select]
BUSY -> 7, RST -> 9, DC -> 8, CS-> 77, CLK -> 76, DIN -> 75 words (BUSY, RST, etc) stands for display pins, right? And numbers stands for arduino physical pin nubers? Or for digital pins?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 20, 2019, 04:50 pm
You didn't tell what connection board you use with your display. BUSY, RST e.g. are printed on the connection board. Due pin numbers are Arduino pin numbers as printed on the Arduino Due board.

You need this board to connect the display and generate the driving voltages: http://www.e-paper-display.com/products_detail/productId=403.html (http://www.e-paper-display.com/products_detail/productId=403.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: iillyyaa2033 on Jan 20, 2019, 08:55 pm
I did not use any connection board.

Is it possible (not with GxEPD library but in manual way) to directly connect display to arduino using SPI only?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 20, 2019, 09:43 pm
Take a look at the schematics of the connection board. Or at the "reference circuit" in the specs of the display panel. You could do it, but does it make sense, and what do you do if it doesn't work?
Title: Re: Good Dispay ePaper for Arduino
Post by: ARCBTC on Jan 22, 2019, 11:44 pm
Slighty off topic, but I think I'm in a search bubble. I can't seen to find any support for software SPI in regards to pin mapping MOSI and SCLK.

Other libraries would give the option here


GxIO_Class io(SPI, /*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2);


How do I add a custom map for MOSI and SCLK?

(Thank you for all your work BTW, I use your library a lot, it's just in one of my recent projects it would be nice to have all the pins clumped together)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 23, 2019, 06:29 am
Quote
A simple E-Paper display library with common base class and separate IO class for Arduino.
GxEPD uses a separate class for IO, which happens by design to be a HW SPI class (GxIO_SPI).

So you could create a SW SPI class to use instead of GxIO_SPI, with the same interface.
For this class you would use a constructor with parameters for all pins.

As this is the first time support for SW SPI is asked for, the decision to support only HW SPI is justified.

Note that the library GxEPD2 does not have this flexibility to just change the IO class.
Title: Re: Good Dispay ePaper for Arduino
Post by: iillyyaa2033 on Jan 24, 2019, 09:54 am
Hm. Lets talk like I'm a stupidest one.

I have one board (https://cloud.mail.ru/public/GU4Y/PFcp6L3mB), one display (https://cloud.mail.ru/public/NJk8/ouGFThGth), and a bunch of wires. Which pins should I connect?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 24, 2019, 11:19 am
Hm. Lets talk like I'm a stupidest one.

I have one board (https://cloud.mail.ru/public/GU4Y/PFcp6L3mB), one display (https://cloud.mail.ru/public/NJk8/ouGFThGth), and a bunch of wires. Which pins should I connect?
Yes, this is a stupid question after the answers I gave you.

Your FCP connection board and some wires are simply not enough to get your e-paper display working.
The e-paper display needs driving voltages of +15V and -15V to drive the panel, to move the particles in the fluid to make the picture appear. Consult Wikipedia to learn more.
The controller already has part of the functions to generate these voltages, but needs external components, a transistor, an inductance, some diodes and some capacitors.

This is what the connection board from Good Display provides, see the link in the previous post.

(https://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=291563)
Title: Re: Good Dispay ePaper for Arduino
Post by: iillyyaa2033 on Jan 24, 2019, 11:45 am
Oh. Sorry for wasting your time.
Title: Re: Good Dispay ePaper for Arduino
Post by: NoahB032204 on Jan 24, 2019, 02:28 pm
Hey ZinggJM,

First let me just say that your work is fantastic. I've successfully built a prototype of my project using the 2.13" flexible display from GooDisplay. While it functions as a working prototype, the display is still too small.

In a past comment on this forum, you said that new e-paper displays were coming out 2019, and that was part of the reason GooDisplay is offloading products without proper documentation. Before I invest more money into this project (such as buying the 2.9" flexible epaper display), do you think it's worth it to wait for the new models coming out?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 24, 2019, 03:28 pm
@NoahB032204,

It looks like they have already added some more to their website. But I don't know any details of their plan, and often their website is inaccessible.

So I can't give you a recommendation for the future.

The 2.9" flexible e-paper display GDEW029I6F has the IL0373 controller, like several new small e-paper displays. So it should be safe for use and not in phase-out. But it is not supported by GxEPD or GxEPD2, as I don't have it. But most likely it will work with the support for GDEW029T5.

Note that the name of the supplier is Good Display or Dalian Good Display, although they seem to have dropped the name good-display.com.

I am wondering if they really have registered GooDisplay, or if this is a typo on the bottom of their page. :)
Title: Re: Good Dispay ePaper for Arduino
Post by: lesept on Jan 24, 2019, 03:48 pm
I think I have seen this on the packaging : their logo looked like "gooDisplay" but there were 2 D's one inside the other.

(https://forum.arduino.cc/index.php?action=dlattach;topic=436411.0;attach=291651)
Title: Re: Good Dispay ePaper for Arduino
Post by: Abdelwaged on Jan 25, 2019, 10:43 am
Hi ZinggJM,
I'm developing an application with GxGDEW042T2 screen and I have developed on your Example and it's  getting all good with partial update and all is working fine till I decide to do refresh the background and  the problem comes to me that i cannot make the screen draw again the background and  found problem when doing tft.fillScreen() as after that partial update is getting bad and scattered white and black pixels in the whole screen when partial update happening so I tried to call the method to drawBitmap() again  and  also drawExampleBitmap but I got the same problem- when i try to clean the screen.
So I would be grateful if you provide any hack to do refresh to the screen without having this manner and to be able to refresh the screen as you know it gets faded after a while..
Thanks a lot.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 11:01 am
Hi Abdelwaged,

all I can find out from your post is that you use GxEPD with display 4.2" b/w GxGDEW042T2.

Please post a (minimized) copy of your code that shows the effect (complete and compilable).
And a description of what it should do.

Post your code in code tags, if it is small enough, else as attachment, as zip-file if multiple files.

And I need to know on what processor and board you run your code.

Then I can analyze your issue.
Title: Re: Good Dispay ePaper for Arduino
Post by: Abdelwaged on Jan 25, 2019, 11:23 am
  void setup(){
  display.init(); // disable diagnostic output on Serial
  display.setTextColor(GxEPD_BLACK);
  display.setRotation(0);
  display.drawExampleBitmap(Main, 0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, GxEPD_WHITE);
  // (this avoids strange background effects)
  display.drawExampleBitmap(Main, sizeof(Main), GxEPD::bm_default | GxEPD::bm_partial_update);
  display.setRotation(0);
  delay(500);
  display.drawExampleBitmap(Main, 0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, GxEPD_WHITE);
  display.update();
  delay(500);
  display.drawExampleBitmap(Main, 0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, GxEPD_WHITE);
  display.update();
  delay(500);
  display.drawExampleBitmap(Main, 0, 0, GxEPD_WIDTH, GxEPD_HEIGHT, GxEPD_WHITE);
  display.update();
  Serial.println("setup done");
  }

  void loop(){
    updateScreenValues();//partial update
    checkInterval();    // chk interval before sending to server
    keepMeAlive();      // always connected with server to get the time and date
    rstScreen++;        // increment rstScreen as when it reaches to 200 it makes software restart
    Serial.println();
    Serial.print(rstScreen);
    Serial.println(" out of 100 to resfresh!");
    if (rstScreen >= 200) {  // chk and do restart for the controller if it makes 200 updates
      rstScreen = 0;
      recv_calender = "";  //forget the last time to show it again
      Serial.println("Restarting in 3 seconds");
      delay(3000);
      ESP.restart(); //should have another way to refresh the screen better than restarting and fetching network again.
    }
 
    delay(2700);
 
  }
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 12:33 pm
@Abdelwaged, your post is not usable to get help for. You might read my post again.
Title: Re: Good Dispay ePaper for Arduino
Post by: Abdelwaged on Jan 25, 2019, 12:56 pm
@ZinggJM
I'm so sorry that for unclear things as I'm not usually ask in online platforms like here , but all I have this code that runs on ESP32 and I use  GxEPD with display 4.2" b/w GxGDEW042T2 that supports Partial update and I do have a problem in runtime to refresh the screen it could be a bad code of me and that's why I posted the code and I would be so grateful if you have the way of how to do it safely. my code is just what i send you and it works fine as I replaced 
 
 display.drawExampleBitmap(Main, sizeof(Main), GxEPD::bm_default | GxEPD::bm_partial_update);

with ESP.restart()  and that's not what I need but solved the problem for now...

I apologize of any unclear comments but I just a newbie in Arduino, thanks.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 01:17 pm
Quote
Please post a (minimized) copy of your code that shows the effect (complete and compilable).
And a description of what it should do.
What is not clear for you in that sentence?

Where is the code for your updateScreenValues();//partial update ?

Title: Re: Good Dispay ePaper for Arduino
Post by: Abdelwaged on Jan 25, 2019, 01:26 pm
I have this code that runs on ESP32 and I use  GxEPD with display 4.2" b/w GxGDEW042T2 that supports Partial update and I do have a problem in runtime to refresh the screen it could be a bad code of me and that's why I posted the code and the function which make the partial update is totally fine and all working fine it just the time that i decide to make a whole refresh to screen here:

    if (rstScreen >= 200) {  // chk and do restart for the controller if it makes 200 updates
      rstScreen = 0;
      recv_calender = "";  //forget the last time to show it again
      Serial.println("Restarting in 3 seconds");
      delay(3000);
      //display.drawExampleBitmap(Main, sizeof(Main), GxEPD::bm_default |
        GxEPD::bm_partial_update); //problem here screen got scatterred pixels.
      ESP.restart(); //another way to refresh the screen better than restarting and fetching network again.
    }

and

that makes it do that afterwards.

here's also the the function that do the partial updates

updateScreenValues(){
     showTempPartialUpdate(tempC);
    delay(500);           
    showHumidPartialUpdate(humid);
}

showTempPartialUpdate(tempC){
 display.setFont(&FreeSerif9pt7b);
  uint16_t box_x = 40;
  uint16_t box_y = 253;
  uint16_t box_w = 30;
  uint16_t box_h = 20;
  uint16_t cursor_y = box_y + 13;
  display.fillRect(box_x, box_y, box_w, box_h, GxEPD_WHITE);
  display.setCursor(box_x, cursor_y);
  display.print(temp);
  display.updateWindow(box_x, box_y, box_w, box_h, true);
}


void showHumidPartialUpdate(int humid)
{
  display.setFont(&FreeSerif9pt7b);
  uint16_t box_x = 175;
  uint16_t box_y = 253;
  uint16_t box_w = 30;
  uint16_t box_h = 20;
  uint16_t cursor_y = box_y + 13;
  display.fillRect(box_x, box_y, box_w, box_h, GxEPD_WHITE);
  display.setCursor(box_x, cursor_y);
  display.print(humid);
  display.updateWindow(box_x, box_y, box_w, box_h, true);
}
Title: Re: Good Dispay ePaper for Arduino
Post by: UpstreamJack on Jan 25, 2019, 02:08 pm
I'm working with some GDEW029I6F and would like to improve the fast partial refresh performance.
Is there anything I can do to help you with this?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 02:55 pm
I'm working with some GDEW029I6F and would like to improve the fast partial refresh performance.
Is there anything I can do to help you with this?
Which library do you use? By performance do you mean picture quality or update speed?

Feel free to experiment with modifying waveform tables, and report your findings.

But I can't add your findings to the library, as I do not have that display. I support only e-paper displays that I have and can test with.
Title: Re: Good Dispay ePaper for Arduino
Post by: NoahB032204 on Jan 25, 2019, 04:42 pm
@UpstreamJack

The GDEW029I6F most likely has different wavetables like ZinngJM has said. I experimented with the display also and found limited success using the T5 display settings on GxEPD2.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 05:47 pm
@NoahB032204, @UpstreamJack,

you do have this display, so you should ask Good Display for demo source with partial update.
But they only advertise the controller having partial update capability, for this display.
So this seems misleading and a reason to request clarification.
Title: Re: Good Dispay ePaper for Arduino
Post by: UpstreamJack on Jan 25, 2019, 06:14 pm
I'd previously been using GDE029A1 but have changed to the I6F due to thickness constraints.

Speed of full and partial refresh is as expected, but contrast had been poor. Strangely there were some times after full refresh that it was absolutely fine, but mostly poor.

RESE resistor on the board I'm using was changed from 3.0 to 0.47 ohm (well, 2x 1 ohm in parallel), but was actually measuring 1.5 ohm. It's a little better, but will try again properly after the weekend.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 25, 2019, 06:54 pm
@UpstreamJack,

Have you tried with waveform from OTP? If you see a difference for full update, then we can conclude it is using a different waveform table. There would be an option to use the wavetable from OTP for full update, and a partial update waveform table from register, loaded by the driver class, for fast partial update.
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Jan 25, 2019, 07:23 pm
I can also confirm the 2,9" flexible (GDEW029I6F) has extremely poor contrast. Text is visible but often surrounded in a grey haze. It is also very inconsistent, the  display will sometimes display crisp, clear whites and text.

One thing I have noticed is that leaving the display on and connected to power will eventually turn everything on the display to a shade of dark grey.
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Jan 26, 2019, 03:09 am
Is there any way to change the pins used for the display? I'm working with a board that doesn't have a 7 or 8 pin.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 26, 2019, 06:45 am
Is there any way to change the pins used for the display? I'm working with a board that doesn't have a 7 or 8 pin.
What processor board do you use? What connection board do you use?

Are you referring to the number of pins or the pin mapping?

Which library or example do you use?

With GxEPD2 you can omit RST and/or BUSY. Or you can use MISO for BUSY if SPI is used for the display only.
Connect RST to processor reset if you omit RST (use -1 in constructor).
Don't change the wavetable if you omit BUSY.

Make sure your connection of the flex connector is good, and your 3.3V to the display is stable.
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Feb 10, 2019, 12:01 am
Sorry for the late reply. I am attempting to connected the 2.9" flexible ePaper to an Arduino Feather M0

(https://www.adafruit.com/product/2995?gclid=Cj0KCQiAkfriBRD1ARIsAASKsQKPbFGqxd2Lq4Hleg2g0t1wdYEb_3Nvph_zDeMJtsRqOWVOFKB5eAYaAqddEALw_wcB)

Using the DESPI-CO2 connector board form GooDisplay. I am using the first Example code provided in GxEPD2. I have tried the normal Arduino AVR settings and the SAMD settings, neither produce any output. Can I change the pin mappings which connect the DESPI to the Feather, or get them to work together?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Feb 10, 2019, 08:26 am
@Daniel456

Now I know that you use a GDEW029I6F (http://www.e-paper-display.com/products_detail/productId=411.html) e-paper display connected with a DESPI-C02 (http://www.e-paper-display.com/products_detail/productId=403.html) to a Adafruit Feather M0 Bluefruit LE (https://www.adafruit.com/product/2995).

Your processor board has a SAMD21 processor, like the Arduino MKR1000 or MKRZERO.

You use the library GxEPD2 (https://github.com/ZinggJM/GxEPD2) with the example GxEPD2_Example.

Your e-paper is not supported by GxEPD2, but it may work with the display driver class for the GDEW029T5 e-paper display.

So you select line 59 in the file GxEPD2_boards_added.h:

Code: [Select]
GxEPD2_BW<GxEPD2_290_T5, MAX_HEIGHT(GxEPD2_290_T5)> display(GxEPD2_290_T5(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEW029T5


But as your processor board has no pin #7, you need to select any other digital pin for DC, e.g. #9.

Code: [Select]
GxEPD2_BW<GxEPD2_290_T5, MAX_HEIGHT(GxEPD2_290_T5)> display(GxEPD2_290_T5(/*CS=4*/ 4, /*DC=*/ 9, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEW029T5


The pins chosen for the constructor parameters just need to correspond to your wiring.
And of course you need to connect the SCK line to the SCK pin and the SDI line to the MOSI pin (HW SPI of processor).

Some IO pins of some processors/boards may not be usable, e.g. reserved for some use, so I can't make sure for boards that I don't have; you need to try.

Take a look at this post (https://forum.arduino.cc/index.php?topic=436411.msg4020942#msg4020942) to use the OTP waveform of the display, to see if you get better results.

Don't forget to increase my Karma points for this detailed answer!
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Feb 10, 2019, 04:36 pm
Wow, thank you for such a detailed response. I will try this and report back in a few hours.
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Feb 16, 2019, 10:39 pm
Late response, but I am happy to say that my flexible display (GDEW029I6F) is working perfectly and much better than before.

I followed your instructions in changing the pins and it worked! For some reason, using a hardware SPI pin like MOSI dramatically increased the performance of the display. Before this, I was using an Arduino UNO board and had big issues with contrast/readability on the display. Everything shown was a grey mess.

However, after switching to the M0 feather board with the MOSI, SCK, and RST pins attached directly to the processor (and not through numbered pins) all my issues solved themselves. I suspect the cause of the poor contrast issues that myself and other have encountered are a product of this. Instead of this mapping for an arduino AVR for example:

BUSY -> 7, RST -> 9, DC -> 8, CS-> 10, CLK -> 13, DIN -> 11 (https://github.com/ZinggJM/GxEPD/blob/master/ConnectingHardware.md original mapping)

This one, using direct hardware SPI connections would be better:

BUSY -> 7, RST -> RST, DC -> 8, CS-> 10, CLK -> SCK, DIN -> MOSI

Such as the mapping of the ESP32 on the same document. I used the initial mapping and I think that is the root cause of many issues, not an improper wavetable or VCOM value.

Many arduino AVR boards do have MOSI or SCK pins, although not labeled, which I did not realize (http://wiki.sunfounder.cc/index.php?title=File:Basssss1.jpg)
Title: Re: Good Dispay ePaper for Arduino
Post by: Birrer on Mar 05, 2019, 10:21 pm
Hi ZinggJM

Your library is simply great. I have the GDEP015OC1 and it worked very well. However, it is not that easy to create a derived class.

Now, because it's gonna be a bigger project, I wanted to create a new class "EpdDisplay" which is inheriting from GxEPD2_BW<GxEPD2_154, GxEPD2_154::HEIGHT>. As far as I understand,  GxEPD2_BW is a class template and GxEPD2_BW<GxEPD2_154, GxEPD2_154::HEIGHT> is a derived class.
My goal is to have all the functionality of GxEPD2_BW<GxEPD2_154, GxEPD2_154::HEIGHT> as well as more own functions in my class "EpdDisplay". But I do not want to change the library source code at all.

I want to instantiate my object like this:
EpdDisplay diplay(/*CS=5*/ SS, /*DC=*/ 25, /*RST=*/ 26, /*BUSY=*/ 27);

I'm trying to do that for several evenings, but can't get it work.
How do I need to define my class and how do I need to define the constructor?
Hopefully anyone can help.

Regards, Birrer
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Mar 06, 2019, 08:38 am
@Birrer,

You can't achieve what you try with GxEPD2, because template classes don't provide inheritance.
Template classes are somehow orthogonal to C++ classes and C++ class inheritance.

If you only use GDEP015OC1 you could transform the template class GxEPD2_BW to a normal class GxEPD2_GDEP015OC1 for buffered graphics, that still would use the driver class GxEPD2_154.

If you look for general solution, you could use the library GxEPD.
Title: Re: Good Dispay ePaper for Arduino
Post by: Birrer on Mar 06, 2019, 09:43 am
@ZinggJM,

thanks for this very fast reply.

Okay I just checked GxEPD -> it would very easy to to what I want. But I still don't get the actual differences between GxEPD and GxEPD2. I didn't choose the GxEPD because it is declared as "simple library", while GxEPD2 is declared as "full graphic support".
What are the main differences?

What does it mean concretely to transform GxEPD2_BW to a normal class GxEPD2_GDEP015OC1?

Thanks for your support.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Mar 06, 2019, 10:26 am
@Birrer,

in your first post, I see that you use an ESP32 board. With this board you have enough RAM and don't need paged display for graphics support.

GxEPD and GxEPD2 both provide full graphics support by use of Adafruit_GFX.
The difference is in how paged display is supported for limited RAM.

Quote
What does it mean concretely to transform GxEPD2_BW to a normal class GxEPD2_GDEP015OC1?
Can't teach you this, but you would start with:

Code: [Select]
template<typename GxEPD2_Type, const uint16_t page_height>
#if ENABLE_GxEPD2_GFX
class GxEPD2_BW : public GxEPD2_GFX
#else
class GxEPD2_BW : public Adafruit_GFX
#endif
{
  public:
    GxEPD2_Type epd2;
#if ENABLE_GxEPD2_GFX
    GxEPD2_BW(GxEPD2_Type epd2_instance) : epd2(epd2_instance), GxEPD2_GFX(epd2, GxEPD2_Type::WIDTH, GxEPD2_Type::HEIGHT)
#else
    GxEPD2_BW(GxEPD2_Type epd2_instance) : Adafruit_GFX(GxEPD2_Type::WIDTH, GxEPD2_Type::HEIGHT), epd2(epd2_instance)
#endif


changing to:

Code: [Select]

class GxEPD2_GDEP015OC1 : public Adafruit_GFX
{
  public:
    GxEPD2_154 epd2;
    GxEPD2_GDEP015OC1(GxEPD2_154 epd2_instance) : Adafruit_GFX(GxEPD2_154::WIDTH, GxEPD2_154::HEIGHT), epd2(epd2_instance)


But you really should rather use GxEPD for your purpose!
Title: Re: Good Dispay ePaper for Arduino
Post by: Birrer on Mar 06, 2019, 10:40 pm
@ZinggJM,

thanks again for that great support.

I tested the GxEPD example and it's working.
But I have a confusing error which is only occuring when building in "debug build configuration", but not in "release build configuration".

Important to know:
I set up an arduino project with visualGdb (see: https://visualgdb.com/tutorials/arduino/esp32/)
It's is an extension for visual studio (community) which allows to program and debug arduino.

As i mentioned before in "release build configuration" everything works fine.
But in "debug build configuration" the following error occures during linking:
undefined reference to `vtable for GxIO' (GxIO_SPI.cpp.o)

I can't figure out which GxIO is meant in the GxIO_SPI.cpp file and what acutally is going wrong.

Has anyone an idea? Please ask if you need more information.

Regards, birrer

Response:

Found the solution on my own.

Defined Virtual functions actually needs to be declared, otherwise they need to be defined as pure virtual function.

so I made a declaration for every member function in the GxIO class and everything just works fine.

@ZingJM you may fix that in a future release.
Title: Re: Good Dispay ePaper for Arduino
Post by: dakipro on Mar 13, 2019, 12:01 am
Hey, thanks for the library (and support topic).
I would like to have some battery powered displays/modules around the house, does anyone have "hands-on" experience about battery usage of esp+ePaper combo that could last some reasonable time on batteries (more then days/month)?

The best combo I could have find is this FireBeetle combo
https://www.dfrobot.com/product-1746.html
and
https://www.dfrobot.com/product-1634.html

While it looks nice on paper for : esp8266 says Low-Power-Consumption: 46uA,
the display says Operating Current: 12mA . Does that mean it draws 12mA all the time?

Any experiences, or alternatives for battery+esp+display combo?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Mar 13, 2019, 08:48 am
@dakipro,

the controller IL0373 of the panel GDEW0213Z16 supports "deep sleep mode" command 0x07, used by the method hibernate() of the library GxEPD2. I measured about 0.2 micro amperes during hibernate, compared to about 20 micro amperes during normal powerOff(). Maximum power measured during refresh was about 8mA. I measured with a Waveshare 2.31 b/w/r board.

Unfortunately the dfrobot board does not use the RST line to the display panel; it just has a capacitor and a 10k pull-up to the RST line. So you can't use deep sleep of the controller, as you can't wake it up again.

Maybe you can live with the 20 micro amperes drawn during powerOff(). And I have no idea how much current the character "Font Chip GT30L24A3W" draws.

Note that the ESP8266 is very power hungry while WiFi is on, up to 140mA, so you should turn WiFi off as soon as you received the data. And use processor deep sleep after display update.

I have not looked for less power hungry WiFi processor boards so far.

Good Luck!
Title: Re: Good Dispay ePaper for Arduino
Post by: Daniel456 on Apr 10, 2019, 03:29 pm
Just popping in to say that it looks like GooDisplay added some new products today, with built it Touch screens and front lighting. Some examples follow

www.buy-lcd.com/index.php?route=product/product&path=2897_8363&product_id=59262/

www.buy-lcd.com/index.php?route=product/product&product_id=58460/

It also appears they've added new higher resolution displays if anyone is interested. Interestingly enough, I didn't initially find any documentation for these new features on their selling page (buy-lcd) and their main website at the time of writing is currently down. The adapter boards that they provide *in a kit* with these panels don't provide any clues either, and don't seem to have a built in space for it either.

I might buy one to experiment with as touch panels are trivial to integrate into Arduino, but was wondering if anyone else could find more documentation?

Quick edit: their website, which is now up, contains demo code for the touch panel. Would this be easy to add into GxEPD, Zingg?
Title: Re: Good Dispay ePaper for Arduino
Post by: NoahB032204 on Apr 10, 2019, 03:49 pm
I just happened to check this forum this morning, and saw the above comment and I think I found something big? GoodDisplay has updated something else on their website...

Link (http://www.e-paper-display.com/products_detail/productId=420.html)

This is an arduino uno based demo board for all of their displays. I'm not sure if this is new, I feel like I've seen it before? But I looked more and found the following (http://www.e-paper-display.com/download_detail/downloadsId=719.html) under GoodDisplay's source code section. They have slowly but surely updated all their libraries with fully functional source code and documentation for all their displays and boards, working for arduino out of the box, which I am 99% sure did not exist before (at least for the displays I was using).

It also looks like they've gone through and added more documentation to their displays which I couldn't find before

Finally, in response to the previous comment I assume the touchscreen specifications match the ones GoodDisplay also sells:

http://www.e-paper-display.com/products_list/pmcId=31.html[Link] (http://www.e-paper-display.com/products_list/pmcId=31.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: DDoled on Apr 30, 2019, 10:10 pm
Hey ZinggJM,

I'm attempting to use the GxEPD2_example code on an Arduino Pro Memory. On first use, the program takes 94% of memory...

Is there any way to reduce the amount of storage the program takes?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 01, 2019, 07:02 am
Hey ZinggJM,

I'm attempting to use the GxEPD2_example code on an Arduino Pro Memory. On first use, the program takes 94% of memory...

Is there any way to reduce the amount of storage the program takes?
I like users posting questions with enough context information, e.g. e-paper display used.

Fortunately the Arduino Forum has a feature to view your previous posts.

So your e-paper is a 2.31" b/w flexible display.

If I compile the GxEPD2_Example for Arduino Pro Mini for your 2.31" flexible display I get:

Code: [Select]
Sketch uses 29394 bytes (95%) of program storage space. Maximum is 30720 bytes.
Global variables use 1499 bytes (73%) of dynamic memory, leaving 549 bytes for local variables. Maximum is 2048 bytes.


So now I know that your issue is with program memory used.

Good Display and Waveshare provide nice bitmaps in their demo code. GxEPD2_Example shows as many of them as possible. You can disable showing the bitmaps, the linker will then leave them out, or you can reduce the number of bitmaps shown:

Code: [Select]
#ifdef _GxBitmaps128x250_H_
void drawBitmaps128x250()
{
#if !defined(__AVR)
  const unsigned char* bitmaps[] =
  {
    Bitmap128x250_1, logo128x250, first128x250, second128x250, third128x250
  };
#else
  const unsigned char* bitmaps[] =
  {
    Bitmap128x250_1, logo128x250, first128x250, second128x250, third128x250
  };
#endif
  if (display.epd2.panel == GxEPD2::GDE0213B1)
  {
    bool m = display.mirror(true);
    for (uint16_t i = 0; i < sizeof(bitmaps) / sizeof(char*); i++)
    {
      display.firstPage();
      do
      {
        display.fillScreen(GxEPD_WHITE);
        display.drawInvertedBitmap(0, 0, bitmaps[i], display.epd2.WIDTH, display.epd2.HEIGHT, GxEPD_BLACK);
      }
      while (display.nextPage());
      delay(2000);
    }
    display.mirror(m);
  }
}
#endif


e.g. by removing , second128x250, third128x250

Don't forget to give me some Karma point for this extensive answer!

Edit:

And you get a Karma point for the question, because it made me detect an error:

Quote
GxEPD2_Example shows as many of them as possible.
But it doesn't show them for the 2.31" flexible because of a missing addition.

Oops, The 2.31 flex needs separate bitmaps and a separate function to display them, as it has a different screen size. But I also need to show them on the new GDEH0213B72.

Just in time for the preparation of next release, thanks!

Additional edit:

For AVR Arduino only the 200x200 bitmaps are pre-selected:

Code: [Select]
// select only one to fit in code space
#include "bitmaps/Bitmaps200x200.h" // 1.54" b/w
//#include "bitmaps/Bitmaps128x250.h" // 2.13" b/w
//#include "bitmaps/Bitmaps128x296.h" // 2.9"  b/w
//#include "bitmaps/Bitmaps176x264.h" // 2.7"  b/w
////#include "bitmaps/Bitmaps400x300.h" // 4.2"  b/w // not enough code space
////#include "bitmaps/Bitmaps640x384.h" // 7.5"  b/w // not enough code space
// 3-color
//#include "bitmaps/Bitmaps3c200x200.h" // 1.54" b/w/r
//#include "bitmaps/Bitmaps3c104x212.h" // 2.13" b/w/r
//#include "bitmaps/Bitmaps3c128x296.h" // 2.9"  b/w/r
//#include "bitmaps/Bitmaps3c176x264.h" // 2.7"  b/w/r
////#include "bitmaps/Bitmaps3c400x300.h" // 4.2"  b/w/r // not enough code space


So you would comment out all of them, or reduce the number of bitmaps here:

Code: [Select]
#ifdef _GxBitmaps200x200_H_
void drawBitmaps200x200()
{
#if defined(__AVR)
  const unsigned char* bitmaps[] =
  {
    logo200x200, first200x200 //, second200x200, third200x200, fourth200x200, fifth200x200, sixth200x200, senventh200x200, eighth200x200
  };
#elif defined(_BOARD_GENERIC_STM32F103C_H_)
  const unsigned char* bitmaps[] =
  {
    logo200x200, first200x200, second200x200, third200x200, fourth200x200, fifth200x200 //, sixth200x200, senventh200x200, eighth200x200
  };
#else
  const unsigned char* bitmaps[] =
  {
    logo200x200, first200x200, second200x200, third200x200, fourth200x200, fifth200x200, sixth200x200, senventh200x200, eighth200x200
  };
#endif


I hope I finally got this answer right.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 05, 2019, 04:21 pm
Added support for GDEH0213B72 2.13" b/w, replacement for GDE0213B1, to the libraries GxEPD2 and GxEPD.

The e-paper panel GDEH0213B72 is the first free sample I received from Good Display.
I had asked for a free sample, as the GDE0213B1 is no longer available.

I thank Good Display and Waveshare for making affordable e-paper displays available for the Arduino community.

Jean-Marc Zingg
Title: Re: Good Dispay ePaper for Arduino
Post by: PencilDH on May 17, 2019, 04:51 pm
@ZinggJM

Thanks for the library, it works well with my ZEROMKR and 2,13" r/b/w display (GxGDEW0213Z16).

I have a quick question/clarification. I want to draw a bitmap and on top of it some text fields. I have managed to do it via partial updates, but I noticed that after a while the text becomes illegible so I need to update the whole screen.

So instead of updating the screen and then partial updating the text values, I want to just write to the screen bitmap to RAM of the screen, then overwrite the segments of the ram with the text only then update the screen.

Does this make sense? and is it possible with your library as I can't get this to work?

My text is clearing the bitmap, so I get a screen with Background bitmap first then text on no background.

Code: [Select]

  // draw background
  display.drawBitmap(blackBacground,2756,bm_partial_update);
  // draw font
  display.drawPaged(showFontCallback);
  // update screen
  display.update();


Thank you
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 17, 2019, 05:49 pm
@PencilDH,

I am still a bit confused, and don't exactly understand what you want to do.

You have a ZEROMKR, I assume is a Arduino MKR Zero with a SAMD21 processor, like my MKR1000.
This processor has enough RAM for full buffered drawing, for almost all these SPI e-paper displays.

You have a GDEW0213Z16 2.13" 3-color e-paper display.
3-color e-paper displays have no "fast partial refresh"; you can use partial update, but the speed is the same as for full update. The advantage of partial update is that only the partial window flickers for your display.

Your example shows that you use the library GxEPD.
I don't understand why you use a mixture of paged drawing and full buffer update, but this is ok.
I see that you draw a bitmap directly to the screen (to controller buffer with refresh).
I don't see the code for partial update.

I would suggest you draw the bitmap to the drawing buffer with the Adafruit_GFX drawBitmap method, like in the example.
You can then clear the rectangle where you want to draw your text. And draw the text.
You can then either update() the full screen, or updateWindow() the rectangle.
You need to update() the full screen from time to time, to avoid fading.

Does this make sense?

Addition: If you do infrequent partial update, e.g. >15s in between, you could call powerDown(), as GxEPD doesn't powerDown() after partial update. This reduces fading, as the panel driving voltage is turned off.
Title: Re: Good Dispay ePaper for Arduino
Post by: PencilDH on May 17, 2019, 09:16 pm
@ZinggJM

Thank you for the reply. Yes samd21 and yes I noticed the partial update limitation of my screen hence I am moving away from the partial update as it has no benefit.

My goal is simple: I have a background image with icons and I want to put next to them values from sensors like temperature / moisture level etc.

As for the GxEPD I feel a bit out of my depth if you could point me at some good reference about it. You might be confused because I have no idea what I am doing :). Is there like a slack channel or some other forum so far I found that even the screen manufacturer refers to this thread

This is where I got confused, I wanted to write to the buffer the image, modify some pages of that image and the update/refresh the screen with the content of the buffer... it clearly didn't work with my code...

The in ram drawing should hopefully do the trick so I will check it out now.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on May 17, 2019, 09:24 pm
Quote
I would suggest you draw the bitmap to the drawing buffer with the Adafruit_GFX drawBitmap method, like in the example.
You can then clear the rectangle where you want to draw your text. And draw the text.
You can then either update() the full screen, or updateWindow() the rectangle.
You need to update() the full screen from time to time, to avoid fading.
Seems not clear enough for you. Look at file Adafruit_GFX.h to find the bitmap drawing methods. These draw to the drawing buffer of GxEPD. Then you have the background in the drawing buffer, instead of the controller buffer. And available for every update().
Title: Re: Good Dispay ePaper for Arduino
Post by: PencilDH on May 18, 2019, 05:31 pm
Seems not clear enough for you. Look at file Adafruit_GFX.h to find the bitmap drawing methods. These draw to the drawing buffer of GxEPD. Then you have the background in the drawing buffer, instead of the controller buffer. And available for every update().
Hey ZinggJM thanks for the help... got it to do what I wanted, awesome job with the library by the way!

Code: [Select]

  // Draw background image to the buffer
  display.drawBitmap(blackBacground,0,0,104,212,GxEPD_WHITE,0);
  display.setRotation(3);
  //set font properties
  display.setTextColor(GxEPD_RED);
  display.setFont(&FreeMonoBold9pt7b);
  //set position of the stex on screen
  display.setCursor(x,y);
  //write some text
  display.println("some text");
  // send buffer to screen
  display.update();


Title: Re: Good Dispay ePaper for Arduino
Post by: MTools on Sep 11, 2019, 08:05 pm
Thank you for the library GxEPD2.

Currently, I'm using Waveshare e-Paper ESP8266 Driver Board and 1.54 B/W e-paper.
The words and images do shows, but there are alway a mess on the screen after flash.

The e-paper is V2 version, updated by waveshare recently.
http://waveshare.net/wiki/E-Paper_ESP8266_Driver_Board
http://waveshare.net/wiki/E-Paper_ESP8266_Driver_Board

So grateful if you could offer some help.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 12, 2019, 10:35 am
Thank you for the library GxEPD2.

Currently, I'm using Waveshare e-Paper ESP8266 Driver Board and 1.54 B/W e-paper.
The words and images do shows, but there are alway a mess on the screen after flash.

The e-paper is V2 version, updated by waveshare recently.
http://waveshare.net/wiki/E-Paper_ESP8266_Driver_Board
http://waveshare.net/wiki/E-Paper_ESP8266_Driver_Board

So grateful if you could offer some help.

I don't understand your post.

Quote
but there are alway a mess on the screen after flash.
What do you mean by this? I have no such "mess" after program upload.

Quote
The e-paper is V2 version, updated by waveshare recently.
I don't know about V2 version. Please post a link.

Quote
http://waveshare.net/wiki/E-Paper_ESP8266_Driver_Board
Please use waveshare.com and use URL tags, so users can click and get the English web-page:

http://waveshare.com/wiki/E-Paper_ESP8266_Driver_Board (http://waveshare.com/wiki/E-Paper_ESP8266_Driver_Board)

When I power up the processor board with the attached 1.54" b/w e-paper, I see the "mess" also for a short moment. This is because the controller memory contains random data, also in the "previous data" buffer. The controller doesn't seem to have a command to write to the "old data" buffer, therefore this can't be avoided with the waveform table used.

Jean-Marc

Title: Re: Good Dispay ePaper for Arduino
Post by: gchart on Sep 26, 2019, 07:46 pm
@ZinggJM  Firstly, thank you for this great library.  It is immensely helpful!

I think there is a bug in the GxEPD2_213_B72 (https://github.com/ZinggJM/GxEPD2/blob/master/src/epd/GxEPD2_213_B72.h) and GxEPD2_213_B73 (https://github.com/ZinggJM/GxEPD2/blob/master/src/epd/GxEPD2_213_B73.h) definitions.  You have them as being 250x128 pixels.  But according to GoodDisplay (and my testing with the B73) they are actually 250x122 pixels.

References:
http://www.e-paper-display.com/products_detail/productId=423.html (http://www.e-paper-display.com/products_detail/productId=423.html)
http://www.e-paper-display.com/products_detail/productId=458.html (http://www.e-paper-display.com/products_detail/productId=458.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 26, 2019, 08:17 pm
@ZinggJM  Firstly, thank you for this great library.  It is immensely helpful!

I think there is a bug in the GxEPD2_213_B72 (https://github.com/ZinggJM/GxEPD2/blob/master/src/epd/GxEPD2_213_B72.h) and GxEPD2_213_B73 (https://github.com/ZinggJM/GxEPD2/blob/master/src/epd/GxEPD2_213_B73.h) definitions.  You have them as being 250x128 pixels.  But according to GoodDisplay (and my testing with the B73) they are actually 250x122 pixels.

References:
http://www.e-paper-display.com/products_detail/productId=423.html (http://www.e-paper-display.com/products_detail/productId=423.html)
http://www.e-paper-display.com/products_detail/productId=458.html (http://www.e-paper-display.com/products_detail/productId=458.html)
You are correct. But this is not a bug, it is a design decision. The width in the controller buffer is 128, which is a multiple of 8, but only 122 pixels are visible. Width of 128 is easier to handle.

GDE0213B1 is handled with width of 122 in the library GxEPD.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: gchart on Sep 26, 2019, 09:45 pm
Ahh, ok.  I'll just make sure to be careful with positioning and the usage of display.height().  Thanks for the quick reply!
Title: Re: Good Dispay ePaper for Arduino
Post by: strange_v on Sep 27, 2019, 10:53 am
Hello.
I've just noticed that good-display sells some displays with touch-screen, e.g. GDEW027W3-T.

@ZinggJM do you know something about how to use that touch-screen or maybe what controller they use?

On the GDEW027W3-T datasheet, I found only pinout:
1 - GND
2 - INT
3 - RST
4 - VDD
5 - SCL
6 - SDA
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Sep 27, 2019, 01:30 pm
@strange_v,

I don't know, but you could just ask Good Display sales support, they are willing to help.

Maybe you find a clue in the demo code:

demo code for 2.7'' touch panel (http://www.e-paper-display.com/download_detail/downloadsId=658.html)
Title: Re: Good Dispay ePaper for Arduino
Post by: strange_v on Sep 27, 2019, 01:39 pm
@ZinggJM, thank you!

I haven't noticed this demo code. Based on it I could say that they use FocalTech FT6336(G) capacitive touch panel controller. The datasheet is available, so now I can try to use this display.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZweiEuro on Oct 02, 2019, 01:17 pm
@ZinggJM

I have been trying to get the GDEW0213Z16 to run. You list your library as supporting so I assume i am not at the completely wrong address.
I am just very very confused on the pins ?
I am using a nodeMCU V1.0 so essentially i am using an ESP8266
so i assume this line is the one i am looking for:
Code: [Select]
``` GxEPD2_BW<GxEPD2_213_flex, GxEPD2_213_flex::HEIGHT> display(GxEPD2_213_flex(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW0213I5F ```

But then again I am really not sure as the last view characters don't match up, I have found the full name of the display used in the library but couldn't backtrack what pins to use from that point.

I am trying to run the whole thing via the GDE021/DESTM32-S2 display driver, for which you have made a small text with the pinout (and jumper position) and marked the display down as "usable" with this driver.
Though when it comes to connecting i am completely lost:


This is your message i am tralking about:
 DESTM32-S2 pinout (top, component side view):
      |-------------------------------------------------
      |  VCC  |o o| VCC 5V
      |  GND  |o o| GND
      |  3.3  |o o| 3.3V
      |  nc   |o o| nc
      |  nc   |o o| nc
      |  nc   |o o| nc
      |  MOSI |o o| CLK
      |  DC   |o o| D/C
      |  RST  |o o| BUSY
      |  nc   |o o| BS
      |-------------------------------------------------

CS = D8    ... What CS?
From what i could gather there is no CS? (chip select), or did the name change?  Can't find anything with the instructions from good displays either. CS from the NodeMCU? but what does D8 stand for ?

CD=D3, ok
3,3 to 3.3 and GND to GND, ok
RST = D4, OK
BUSY=D2 ,OK
BS = GND , you mentioned this somewhere, can't find it right now though
.... and the others? as it stands MOSI, CLK, D/C

If i try falling back onto some other instructions from waveshare or similar products, i don'T really know what to connect stuff to either because of this section:
Code: [Select]
```
// mapping suggestion from Waveshare SPI e-Paper to generic ESP8266
// BUSY -> GPIO4, RST -> GPIO2, DC -> GPIO0, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V
// NOTE: connect 4.7k pull-down from GPIO15 to GND if your board or shield has level converters
// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case, or 4k7 pull-down

// mapping of Waveshare e-Paper ESP8266 Driver Board
// BUSY -> GPIO16, RST -> GPIO5, DC -> GPIO4, CS -> GPIO15, CLK -> GPIO14, DIN -> GPIO13, GND -> GND, 3.3V -> 3.3V
// NOTE for ESP8266: using SS (GPIO15) for CS may cause boot mode problems, use different pin in case
```

As i don't have GPIO and do not know the D# equivalent i am not sure what to do here.

:/ I love your library and have tried reading into it more and the lib from Adafruit, but i can't even get the demo example (GxEPD2_Example.ino) to run anyways so playing around with it is nearly impossible.

Regards,
Zwei
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 02, 2019, 02:03 pm
@ZweiEuro,

I have read your post, and I will answer soon, but right now I don't have the time.

In the meantime please read the post How to use this forum - please read. (https://forum.arduino.cc/index.php?topic=149018.0)

If you provide clickable links to the products you can get an answer faster.

Do preview before post, and put text in code tags that would not be presented correctly.

Code: [Select]
DESTM32-S2 pinout (top, component side view):

         |-------------------------------------------------

         |  VCC  |o o| VCC 5V  not needed

         |  GND  |o o| GND     GND

         |  3.3  |o o| 3.3     3.3V

         |  nc   |o o| nc

         |  nc   |o o| nc

         |  nc   |o o| nc

   MOSI  |  DIN  |o o| CLK     SCK

   SS    |  CS   |o o| DC      e.g. D3

   D4    |  RST  |o o| BUSY    e.g. D2

         |  nc   |o o| BS      GND

         |-------------------------------------------------


Same recommendation for me: remove the extra line breaks! should look like the board.
Code: [Select]
   connection to the e-Paper display is through DESTM32-S2 connection board, available from Good Display

   DESTM32-S2 pinout (top, component side view):

         |-------------------------------------------------
         |  VCC  |o o| VCC 5V  not needed
         |  GND  |o o| GND     GND
         |  3.3  |o o| 3.3     3.3V
         |  nc   |o o| nc
         |  nc   |o o| nc
         |  nc   |o o| nc
   MOSI  |  DIN  |o o| CLK     SCK
   SS    |  CS   |o o| DC      e.g. D3
   D4    |  RST  |o o| BUSY    e.g. D2
         |  nc   |o o| BS      GND
         |-------------------------------------------------
Title: Re: Good Dispay ePaper for Arduino
Post by: ZweiEuro on Oct 02, 2019, 02:51 pm
@ZinggJM

Oh, I read them but i thought the preview was fine since i just copied it from when you posted the same thing earlier.

Thanks for the fast reply. But so others can also find what I mean:
This is the display i am tralking about:
https://www.good-display.com/products_detail/productId=310.html
GDEW0213Z16

With the driver I mentioned:
https://www.good-display.com/products_detail/productId%3D362.html
GDE021/029 DESTM32-S2

My Breakout board for an ESP8266:
NodeMCU Amica
https://roboindia.com/tutorials/nodemcu-amica-esp8266-board-installation/

Which runs the NodeMCU-V1.0 Dev kit:
https://github.com/nodemcu/nodemcu-devkit-v1.0

As far as i can gather the pinouts are quasi exact for the nodeMCU boards
(https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png)



As far as I have understood it, using the above connection names for the nodeMCU i am still unsure where to connect what since it's not really 100% exact:
Code: [Select]

         |-------------------------------------------------
         |  VCC  |o o| VCC 5V  not needed                //ok
         |  GND  |o o| GND     GND                       //ok
         |  3.3  |o o| 3.3     3.3V                      //ok
         |  nc   |o o| nc                                //ok
         |  nc   |o o| nc                                //ok
         |  nc   |o o| nc                                //ok
   MOSI  |  DIN  |o o| CLK     SCK                       //suspect MOSI = MOSI (PIN SD1)  |o o| unclear SCK as in SCLK (PIN CLK) ?
   SS    |  CS   |o o| DC      e.g. D3                   // What is SS supposed to mean? Don't know which pin has that purpose.
   D4    |  RST  |o o| BUSY    e.g. D2                   //ok
         |  nc   |o o| BS      GND                       //ok
         |-------------------------------------------------



I am most lost on SS which without which the board will not turn on (which is clear, but I don't know what SS stands for and what pin may have that purpose?

Sorry for not providing enough context the first time around.


Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 02, 2019, 02:56 pm
@ZweiEuro,

First, I need to understand what you have:

GDEW0213Z16 (http://www.e-paper-display.com/products_detail/productId=310.html) 3-color display.

Connection Adapter Board DESTM32-S2-12(Discontinued) (http://www.e-paper-display.com/products_detail/productId=362.html)

And you want to connect it to a NodeMCU V1.0 (link not searched for).

The NodeMCU V1.0 has the same Dx kind of inking of the pins like the Wemos D1 mini I use.

And I provide a suggested wiring for it in my examples ConnectingHardware.md:

Code: [Select]
#### mapping suggestion from Waveshare SPI e-Paper to ESP8266 NodeMCU:
- BUSY -> D2, RST -> D4, DC -> D3, CS -> D8, CLK -> D5, DIN -> D7, GND -> GND, 3.3V -> 3.3V

its the same as for Wemos D1 mini.

If you need to find the mapping from Dx inking to GPIO numbers, you consult pins_arduino.h of your board:
C:\Users\xxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\variants\nodemcu\pins_arduino.h:
Code: [Select]
static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t D9   = 3;
static const uint8_t D10  = 1;

#include "../generic/common.h"

And in ../generic/common.h you find the SPI pins:

Code: [Select]
#define PIN_SPI_SS   (15)
#define PIN_SPI_MOSI (13)
#define PIN_SPI_MISO (12)
#define PIN_SPI_SCK  (14)

static const uint8_t SS    = PIN_SPI_SS;
static const uint8_t MOSI  = PIN_SPI_MOSI;
static const uint8_t MISO  = PIN_SPI_MISO;
static const uint8_t SCK   = PIN_SPI_SCK;


Now you only need to select/uncomment the correct constructor for your 3-color e-paper:
Code: [Select]
//GxEPD2_3C<GxEPD2_213c, GxEPD2_213c::HEIGHT> display(GxEPD2_213c(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4));


I hope this helps!

Don't send me two Euros, but you could increase my Karma points.

Jean-Marc

Added:

SS and CS are used alternatively for Slave Select or Chip Select.

You can use any free GPIO pin for the CS pin of the e-paper, but there is a pre-defined SS pin for SPI, which is usually used, as it can't be used for anything else if HW SPI is used (on most processors).

The pin you use for e-paper CS must be used as parameter in the constructor, like DC, RST and BUSY.

Quote
//suspect MOSI = MOSI (PIN SD1)  |o o| unclear SCK as in SCLK (PIN CLK) ?
on NodeMCU you need to connect to the HSPI pins, the SDIO pins can't be used (internal sram/flash).
Use HSCLK, HMOSI, HCS.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZweiEuro on Oct 02, 2019, 03:32 pm
@ZinggJM
Thank you for all the useful information!
I actually wasn't aware that GPIO# are ultimately the numbers used in programming thank you for clearing that up.

I've tried your hardware configuration from the mini before and hoped that if i swapped the class it would function ,sadly no such luck.
I will play around with it some more and will get something soldered together because i do not trust these connections.

Are there any drivers (Dev boards) you recommend in order to try the e ink displays or develop ?
Since you said that the one i was using is not being continued. What are your personal recommendation since you have worked with a lot of them.

Hope the karma is helping :)

Sincerely,
Zwei

EDIT: Nevermind i figured it out:
NOTE: if anyone is trying this, be sure not to swap the two rows... I accidentally mixed them up since there is no real "UP" indicator.
For the board i was using the side where you do not plug the cables into is TOP.
So most likly it worked fine the first time i tried, just swapped the pins
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 02, 2019, 04:06 pm
I now use DESPI-C02 (http://www.e-paper-display.com/products_detail/productId=403.html) to connect to 3.3V processor boards.

Waveshare has ESP32 and ESP8266 driver boards to connect panels directly, both have drawbacks (unable to use processor deep-sleep on ESP8266 because of BUSY pin, wrong SPI pins on ESP32).
Their Arduino driver shield would be ok, if it had a jumper from 5V to VCC pin, and a 3.3V to 3.3V jumper for use with STM32-Nucleo boards.
Their HAT has marginal e-paper VCC when connected by cable to 3.3V processors, ok through RasPi 3.3V pin.
Title: Re: Good Dispay ePaper for Arduino
Post by: zhongshanliyu on Oct 21, 2019, 04:43 am
hi ZinggJM, I would like to known did you any plan add GDEW075T7 7.5" b/w/r 800x480 into GxEPD.

because I notify by good display GDEW075T8 7.5" b/w was End-of-life. and i asking to use  GDEW075T7 .

I created a PCB and working good.

thank you.


(https://schedule9.com/wp-content/uploads/2019/10/5.png)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 21, 2019, 07:16 am
Hi zhongshanliyu,

GDEW075Z08 is supported by my library GxEPD2 (https://github.com/ZinggJM/GxEPD2).

GDEW075Z08 is also supported by GxEPD (https://github.com/ZinggJM/GxEPD). Version 3.0.8

GDEW075Z08 needs 2 * 800 * 480 / 8 bytes of RAM for full screen graphics buffer.
This means you need to use paged drawing on most processors.
GxEPD2 is better suited for use of paged drawing, as the page buffer size can be selected by the template class parameter page_height.

I intend to add GDEW075T7 7.5" b/w 800 * 480 to GxEPD also, it is supported by GxEPD2.

Did you mean GDEW075T7 ?

Thank you for your question; only by feedback I can know which panels are used with my libraries.

Jean-Marc

PS: if you want to add a picture and have it shown, add it as attachment, post, copy the link of the attached picture, modify the post by adding the picture using the link copied, save the post.
Title: Re: Good Dispay ePaper for Arduino
Post by: zhongshanliyu on Oct 22, 2019, 01:57 am
Yes, I mean GDEW075T7 for GxEPD.
Title: Re: Good Dispay ePaper for Arduino
Post by: zhongshanliyu on Oct 31, 2019, 06:36 am
hi ZinggJM, I would like to known did you any plan add GDEW075T7 7.5" b/w/r 800x480 into GxEPD.

because I notify by good display GDEW075T8 7.5" b/w was End-of-life. and I asking to use  GDEW075T7 .

I created a PCB and working good.

thank you.


(https://schedule9.com/wp-content/uploads/2019/10/5.png)
I am trying clone 583T7 driver to make 75T7 working in ESP8266, when I compile in Arduino got an error below:

arduino_build_897221/stream_screen.ino.elf section `.bss' is not within region `dram0_0_seg'




Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Oct 31, 2019, 07:53 am
I am trying clone 583T7 driver to make 75T7 working in ESP8266, when I compile in Arduino got an error below:

arduino_build_897221/stream_screen.ino.elf section `.bss' is not within region `dram0_0_seg'

Quote
I intend to add GDEW075T7 7.5" b/w 800 * 480 to GxEPD also, it is supported by GxEPD2.
I started work on this. Your posts are not the kind that motivate me to hurry.

Why don't you use GxEPD2?
Title: Re: Good Dispay ePaper for Arduino
Post by: Zentris on Nov 03, 2019, 06:59 pm
Hello all,

I cloned the Git-Repo https://github.com/ZinggJM/GxEPD2 and started to try the examples with my new eInk paper.

The code is translated with the Arduino GUI.

In the file GxEPD2/examples/GxEPD2_Example/GxEPD2_Example.ino the following error occurs when compiling:

/home/wiese/workspace/GxEPD2/examples/GxEPD2_Example/GxEPD2_Example.ino: In function 'void helloWorld()':
GxEPD2_Example:343:65: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
  display.getTextBounds(HelloWorld, 0, 0, &tbx, &tby, &tbw, &tbh);


The problem is that the API of display.getTxtBounds() expects a char* as text, but a const char* is provided in the code.
Since this is obviously only noticeable with the compiler switch [-fpermissive]...:

const char HelloWorld[] = "Hello World!";
...
void helloWorld()
{
 ...
 display.getTextBounds(HelloWorld, 0, 0, &tbx, &tby, &tbw, &tbh);
...


Of course i can't change the API, and so the char arrays just can't be declared as const...

Has nobody noticed that yet?

What do you think? Am I wrong?

best regards..
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 03, 2019, 10:19 pm
@Zentris,

Please check and update your version of Adafruit_GFX.

This is the actual signature of this method. It was wrong in earlier versions.

Code: [Select]
    getTextBounds(const char *string, int16_t x, int16_t y,
      int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h),


Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 04, 2019, 08:29 am
GxEPD Version 3.0.9 is available, installable or updated with Library Manager.

- fixed BMP handling, e.g. for BMPs created by ImageMagick
- see also Arduino Forum Topic https://forum.arduino.cc/index.php?topic=642343.0 (https://forum.arduino.cc/index.php?topic=642343.0)
- added support for GDEW075T7 7.5" b/w 800x480
- GDEW075T7 has differential update (1.6s) using a charge balancing waveform
- added "fast partial update" (differential update) for GDEW0371W7 3.7" b/w 240x416
- improved differential update waveform for GDEW026T0 2.6" b/w 152x256
- fixed init code & improved differential update for GDEW042T2 4.2" b/w 300x400
- note that all differential refresh waveforms are a compromise (ghosting, big font use)
- parameters for differential waveform for these display can easily be changed for experimenting
- GDEW042T2 would have greyed background without sustain phase
- GDEW042T2 needs multiple full refreshes after extended use of partial updates

Please note that I recommend to use GxEPD2 for Newbies or new projects.

Both GxEPD (https://github.com/ZinggJM/GxEPD) and GxEPD2 (https://github.com/ZinggJM/GxEPD2) are known by Library Manager and can be installed directly.

Jean-Marc

Title: Re: Good Dispay ePaper for Arduino
Post by: FlatFootFox on Nov 08, 2019, 04:08 pm
Hey there ZinggJM,

I feel a little foolish asking, "What's the deal with a display that's not on the supported display list", but I'm curious if you've taken a look at the GDEW0154T8 (https://www.good-display.com/products_detail/productId%3D345.html) any? I'm looking for a small square epaper display which supports 4 shades of gray to show BMPs for an upcoming project. I noticed that you've included an Aliexpress link (https://www.aliexpress.com/store/product/E-paper-display-GDEW0154T8-with-demo-Board-DESTM32-S2/600281_32813958757.html) to the GDEW0154T8 in the comments of the GxEPD IoT_SHT31LP_Example_1.54inchEPD.ino (https://github.com/ZinggJM/GxEPD/blob/master/examples/IoT_SHT31LP_Example_1.54inchEPD/IoT_SHT31LP_Example_1.54inchEPD.ino) example code, so I figured it wouldn't hurt to ask.

I'm considering switching to a B/W/R display and getting rid of one shade of fidelity so that I could use something like the supported GDEW0154Z17. Just out of curiosity, does GxEPD/GxEPD2 support 4 shades of gray on supported boards like the GDEW029T5? If it's not clear, I haven't bought any displays or boards yet.

Thanks for your time.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 08, 2019, 04:41 pm
Hello FlatFootFox,

Note that GxEPD2 and GxEPD support only b/w on 2-color e-papers, b/w/r or b/w/y on 3-color e-papers.

Some of the b/w SPI e-paper display could also produce grey levels, as a feature of the controller.
And Good Display has recently discovered that b/w e-papers that support "differential" refresh can alternately produce 4 grey levels, using a special waveform. For those of these that I have I created a new (experimental) library GxEPD2_4G (https://github.com/ZinggJM/GxEPD2_4G)

The GDEW0154T8 is a special case: I don't have it, but I had added it to GxEPD as an exception, as it has a known controller. For GxEPD2 I am strict and support only e-papers that I have (sponsors welcome).

GDEW029T5 is supported by GxEPD2_4G.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: FlatFootFox on Nov 08, 2019, 06:14 pm
Thanks for the quick response Jean-Marc! That helped clear things up for me.
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Nov 20, 2019, 12:19 pm
I use GxEPD 3.09 with TTGO T5 (2.13" GxGDE0213B72B) and have some kind problem. Sometimes, very rarely, the screen fades to white, after a partial update it works fine, but sometimes it fades to white again. Fade to white occurs quickly in about 2-3 seconds. This can happen a few minutes after turning on, sometimes after several hours of working. There is no any system. Then the device can work again for several hours without problems. I use full update "displayInit ();" only when turning on / rebooting the device, in the future only "display.updateWindow (0, 0, display.width (), display.height (), true);"  to avoid screen blinking.
I can't repeat the glitch while debugging, I don't understand the reasons for this screen behavior. How can I fix this, any ideas?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 20, 2019, 03:20 pm
I use GxEPD 3.09 with TTGO T5 (2.13" GxGDE0213B72B) and have some kind problem. Sometimes, very rarely, the screen fades to white, after a partial update it works fine, but sometimes it fades to white again. Fade to white occurs quickly in about 2-3 seconds. This can happen a few minutes after turning on, sometimes after several hours of working. There is no any system. Then the device can work again for several hours without problems. I use full update "displayInit ();" only when turning on / rebooting the device, in the future only "display.updateWindow (0, 0, display.width (), display.height (), true);"  to avoid screen blinking.
I can't repeat the glitch while debugging, I don't understand the reasons for this screen behavior. How can I fix this, any ideas?
Hi mutexx,

I don't really understand what is happening, with your description.

With GxEPD you need to make sure that the first update after power on is a full update. And it needs to be followed by a partial update to full screen with the same content, for subsequent partial updates to work correctly.

But your description rather looks like marginal power voltage to the display, or fluctuation.
You should call powerDown() or powerOff() after a partial update, if the next update does not occur soon.

You could also try with GxEPD2. I recommend GxEPD2 for Newbies or new projects.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Nov 20, 2019, 04:54 pm
Thank you for fast answer!

I don't really understand what is happening, with your description.
The video is of very poor quality, but I think the problem can be understood:
02-06-08b2.mp4 - https://drive.google.com/file/d/1FaztkDn9y4iU6kB7vF654lRK34iOifv3/view?usp=sharing
The problem is not hardware most likely, the image appears after a partial update, not after bumps


But your description rather looks like marginal power voltage to the display, or fluctuation.
Supply voltage is implemented using LiPo batterie and LDO Regulator me6211c33. I think the problem is not in flaw or malfunction, since it is present on different devices of different users

You should call powerDown() or powerOff() after a partial update, if the next update does not occur soon.
"Soon" is how long? If partial updates happen every 10 seconds, should I call powerDown() or powerOff()?

With GxEPD you need to make sure that the first update after power on is a full update. And it needs to be followed by a partial update to full screen with the same content, for subsequent partial updates to work correctly.
I have such code in setup (call once on start/reset device):
Quote
// Start the Display
    display.init();
    display.setRotation(1);
    display.eraseDisplay();
    display.setTextColor(GxEPD_BLACK);
    display.setFont(&DEFALUT_FONT);
    display.setTextSize(0);
  display.setFont(&FreeSansBold9pt7b);
  displayText(sketchName, 250, 64, CENTER_ALIGNMENT);
  displayText("*******"), 250, 30, CENTER_ALIGNMENT);
  //display.update();
  display.updateWindow(0, 0, display.width(), display.height(), true);
I must uncomment row "display.update();"?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 20, 2019, 06:49 pm
The video doesn't help me in any way.

"Soon" would be about one minute. 10s is fine to keep panel driving power on.

eraseDisplay() or eraseDisplay(false) clears both previous and current controller buffer, no update() needed.

update() writes to both controller buffers, no partial update to full screen would be needed anymore with the actual version.

I have no idea, and I don't want to comment on TTGO T5.

I would check if the RESE resistor has the correct value for this panel; consult the Good Display web-site.

I might feel mis-treated if I were your e-paper display, after having seen your video.
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Nov 20, 2019, 07:18 pm
Jean-Marc thank you so much, get plus to karma!
and the last plea, confirm that I understood correctly:
1. eraseDisplay () clear previous and current controller buffer
2. updateWindow () what is being executed after eraseDisplay() puts information into the current buffer, does the previous one remain empty
3. the next updateWindow() execution writes information to the current buffer, is the previous information shifted to the previous buffer
4. update () clears both buffers and writes to both controller buffers again at any state of buffers before this
5. for the screen to work properly, should we make the state of both buffers equal in any way from time to time

it is correct?
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 20, 2019, 08:22 pm
Code: [Select]
void GxGDEH0213B72::updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation)
{
  if (_current_page != -1) return;
  if (using_rotation) _rotate(x, y, w, h);
  if (x >= GxGDEH0213B72_WIDTH) return;
  if (y >= GxGDEH0213B72_HEIGHT) return;
  uint16_t xe = gx_uint16_min(GxGDEH0213B72_WIDTH, x + w) - 1;
  uint16_t ye = gx_uint16_min(GxGDEH0213B72_HEIGHT, y + h) - 1;
  uint16_t xs_d8 = x / 8;
  uint16_t xe_d8 = xe / 8;
  _Init_Part(0x03);
  _SetRamArea(xs_d8, xe_d8, y % 256, y / 256, ye % 256, ye / 256); // X-source area,Y-gate area
  _SetRamPointer(xs_d8, y % 256, y / 256); // set ram
  _waitWhileBusy();
  _writeCommand(0x24);
  for (int16_t y1 = y; y1 <= ye; y1++)
  {
    for (int16_t x1 = xs_d8; x1 <= xe_d8; x1++)
    {
      uint16_t idx = y1 * (GxGDEH0213B72_WIDTH / 8) + x1;
      uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
      _writeData(~data);
    }
  }
  _Update_Part();
  delay(GxGDEH0213B72_PU_DELAY);
  // update erase buffer
  _SetRamArea(xs_d8, xe_d8, y % 256, y / 256, ye % 256, ye / 256); // X-source area,Y-gate area
  _SetRamPointer(xs_d8, y % 256, y / 256); // set ram
  _waitWhileBusy();
  _writeCommand(0x26);
  for (int16_t y1 = y; y1 <= ye; y1++)
  {
    for (int16_t x1 = xs_d8; x1 <= xe_d8; x1++)
    {
      uint16_t idx = y1 * (GxGDEH0213B72_WIDTH / 8) + x1;
      uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
      _writeData(~data);
    }
  }
  delay(GxGDEH0213B72_PU_DELAY);
}


Quote
// update erase buffer
comment is wrong, should be update previous buffer

1. correct
2. writes to current buffer, updates using differential waveform, writes to previous buffer.
   most controllers switch buffer after update, so write to current buffer again instead (as next partial window might be somewhere else!)
3. see 2.
4. update writes same to both buffers
5. this is done by GxEPD (or GxEPD2). But you should do full update from time to time to avoid ghosting or fading caused by the panel.
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Nov 20, 2019, 09:28 pm
I would check if the RESE resistor has the correct value for this panel; consult the Good Display web-site.
3 Ohm on referense scheme (found only for GDEH0213B72 instead my GDE0213B72B), 0.48 Ohm on T5 scheme, and ~0.6 Ohm in real life.

And what does it mean? Ok or not? To change the resistor for testing is mission  impossible for me, the smallest smd resistors are used on the board

P. S. I reviewed all the possible screens on the site of good displays, and found that the board installed on the T5 looks exactly like GDEH0213B73 (flat cable marking SLH 1914), although GDE0213B72B is specified in the description of TTGO T5. But these China, mistakes are not surprising. I tried connecting the GDEH0213B73 library instead of GDE0213B72B to the sketch and the screen works fine. I'm not sure that the glitch has disappeared, it takes a long test, but it inspires hope
Title: Re: Good Dispay ePaper for Arduino
Post by: WegzZ on Nov 20, 2019, 10:23 pm
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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 21, 2019, 06:38 am
@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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 21, 2019, 06:50 am
@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.

Quote
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 (http://www.e-paper-display.com/products_detail/productId=403.html)

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Nov 21, 2019, 08:27 am
It's strange why TTGO installed 0.48 Ohm if the recommendations clearly prescribed:
Quote
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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 21, 2019, 10:18 am
Quote
resistance of 0.48 Ohm gives a higher panel current
Just slightly higher current spikes taken from the supply, I believe.
Title: Re: Good Dispay ePaper for Arduino
Post by: subsy on Nov 26, 2019, 07:41 am
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,
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 26, 2019, 07:59 am
@subsy

take a look at https://github.com/ZinggJM/GxEPD2_4G (https://github.com/ZinggJM/GxEPD2_4G) and https://github.com/ZinggJM/GxEPD2_4G/blob/master/README.md (https://github.com/ZinggJM/GxEPD2_4G/blob/master/README.md)
Title: Re: Good Dispay ePaper for Arduino
Post by: subsy on Nov 26, 2019, 06:40 pm
@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,
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 26, 2019, 06:54 pm
@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. (https://forum.arduino.cc/index.php?topic=149018.0) and then edit your post to make it more pleasant to read!
Title: Re: Good Dispay ePaper for Arduino
Post by: subsy on Nov 26, 2019, 07:05 pm
 :o
Title: Re: Good Dispay ePaper for Arduino
Post by: Theiler on Nov 28, 2019, 10:37 am
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.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 28, 2019, 10:53 am
@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
Title: Re: Good Dispay ePaper for Arduino
Post by: Theiler on Nov 28, 2019, 12:42 pm
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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 28, 2019, 01:18 pm
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.
Title: Re: Good Dispay ePaper for Arduino
Post by: Theiler on Nov 29, 2019, 04:50 am
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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 29, 2019, 05:51 am
@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
Title: Re: Good Dispay ePaper for Arduino
Post by: Theiler on Nov 29, 2019, 07:09 am
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
Title: Re: Good Dispay ePaper for Arduino
Post by: subsy on Nov 29, 2019, 12:03 pm
Hello,

So I have this question regarding grayscale image coordinates :

Below is my rendering function :

 
Code: [Select]

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?

Title: Re: Good Dispay ePaper for Arduino
Post by: strange_v on Nov 29, 2019, 12:37 pm
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 (https://www.buymeacoffee.com/))
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 29, 2019, 01:31 pm
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 :) . 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
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Nov 29, 2019, 02:01 pm
@subsy,

to be able to give good answers, I need to know what processor board you use, in addition to the library used and e-paper board or panel and connection board used.

GxEPD2_4G does rather less flashing than GxEPD2 for full refresh, I think.
But you have added one refresh() call that is not needed, as refresh is done by the last nextPage();

Rotation set by setRotation() is only in effect for graphics drawing trough Adafruit_GFX.
epd2.drawImage_4G() goes directly to the driver class and is according to the native origin of the display.

Note that in GxEPD and GxEPD2 rotation 0 is according to the native orientation of the e-paper panel, which is either portrait (small ones) or landscape (4.2" and up).

Please format code before posting in code tags. Thank you.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: subsy on Nov 29, 2019, 02:24 pm
Thank you for the feedback.

The esp is part of a IOT Badgy (badgy (https://github.com/sqfmi/badgy)).

Processor is an ESP8266.

I will remove the extra display and see how it looks.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 07, 2019, 08:12 am
Hi , I am current working with esp32 and  7.5 inch , 4 gray scale epaper from good display
https://www.good-display.com/products_detail/productId=456.html .  I am using the Gxepd2 library, and could get the demo to work.
I am having problem trying to display my own bitmap image , for all previous displays , using the Image2lcd to create the bitmap array was straight forward , but for this display when i create a bitmap using image2lcd and display it , the display only shows part of the image with overlapped parts.

I am unable to find demo on good display website showing how to get the correct bitmap array for an image for this display, hence requesting your help to tell me the procedure.

Thanks in advance for your help.

   
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 07, 2019, 08:21 am
@flyingbaloon,

7.5 inch Large e-paperdisplay higher resolution 800x480 SPI GDEW075T7 (https://www.good-display.com/products_detail/productId=456.html)

Please post the image (zipped) that doesn't work correctly, and the method call you use to display it.

I can't tell you more than Good Display does, as I have no experience with creating bitmap code, I use only example bitmaps.

Jean-Marc

Maybe I just missed to adapt the index type for this big display somewhere.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 07, 2019, 03:34 pm
please find the test image , img2lcd setting and the gxepd function call .. thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 07, 2019, 04:13 pm
@flyingbaloon,

I did not yet check with your image. But your img2lcd settings show that you create a 4 bits per pixel color format. GxEPD does not support this format, it does not support grey levels.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 07, 2019, 05:32 pm
ok thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 07, 2019, 06:40 pm
@flyingbaloon,

I intend to add support for GDEW075T7 to the (experimental) library GxEPD2_4G, but I don't know when.
Thanks to you I have a bitmap example to test.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: Thoma67 on Dec 08, 2019, 08:27 pm
Hello,

I bought two displays : one GDEW042Z15 and one GDEW042C37.
I used GxEPD_Example with an ESP8266.
It works great with the GDEW042Z15.
I was thinking that the same code will work with GDEW042C37. I am wrong.
In fact, no yellow pixel appears. I see only the black ones.

I suppose few modifications are required in order to handle the difference between GDEW042Z15 and GDEW042C37.

Does someone have some suggestions ?

Thanks in advance.

Thoma
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 09, 2019, 08:37 am
@Thoma67,

I think this would have been reported in this forum before, but it has not afaik.

Where did you buy your e-paper panels? Please post a link.

Both panels use the same controller and work with the same SW. But I have only the GDEW042Z15.

Take a look at the panels. The GDEW042Z15 will look slightly reddish, with some red on the border.
The GDEW042C37 would look slightly yellowish, with some yellow on the border.

You could report the inking on the flex connector, maybe it can provide a clue.
And you should report diagnostic output from the example (from Serial Monitor). Please put it into a code-tag window, using the </> command symbol. This would tell me about the refresh time, a clue to the OTP wavetable of the controller.

You might have a b/w panel, or a panel with the controller with OTP for b/w.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: zubairu on Dec 10, 2019, 04:40 am
Hey, guys

I bought two displays : one GDEW075Z08 and one GDEW075T7. I want to use these two displays with ESP32 at same time. I use @ZinggJM sample code "GxEPD_MultiDisplayExample", but got an error "region `dram0_0_seg' overflowed by 35256 bytes". After same google, I found this may coursed by out of memory. Is there any solution to solve this problem?

Thanks in advance.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 10, 2019, 06:43 am
@zubairu,

this is an issue with the ESP32 package: maximum ram usable is 96000 #1163 (https://github.com/espressif/arduino-esp32/issues/1163)

As a consequence you need to use paged display with your 2 big e-paper displays.
With GxEPD you would need to do changes in the library sources to change the number of pages.

With GxEPD2 you can select the page height in the constructor.
See example GxEPD2_MultiDisplayExample.ino (https://github.com/ZinggJM/GxEPD2/blob/master/examples/GxEPD2_MultiDisplayExample/GxEPD2_MultiDisplayExample.ino)

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 10, 2019, 07:04 pm
hi , I am trying to connect the  6 inch waveshare IT8951 hat with a spark fun esp32 thing using GXepd2 library ,  I am able to upload the code to the board but the display doesnot change .

I have an external power supply for the IT8951 board and for connecting the IT8951 to the board I followed the recommendation
 
 HRDY -> 4, RST -> 16, CS -> SS(5), SCK -> SCK(18), MOSI -> MOSI(23), MISO -> MISO(19), GND -> GND


but am not sure where to connect the DC pin  in this

GxEPD2_BW<GxEPD2_it60, GxEPD2_it60::HEIGHT> display(GxEPD2_it60(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4));

Kindly help me with this connection , thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 10, 2019, 08:25 pm
@flyingbaloon,

Where to connect the DC when there is no DC pin on the IT8951? Just leave it open. :)

You can use -1 for the constructor value.

I decided to use the same constructor parameter list as for the SPI e-papers.
Either way it would confuse some users.

If your display doesn't update, you could post diagnostic output from Serial Monitor.
Use a code-tag window, </> command symbol.

Check if the external power supply has stable 5V.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: zubairu on Dec 11, 2019, 02:03 am
@ZinggJM Thanks budy, you save my world. With half buffer after useing 1/2 height it works just fine.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 11, 2019, 09:32 am
@ZinggJM Thank you  :)

My display still doesnot update , here's the serial output :

Code: [Select]


setup
init reset_to_ready : 1717003
GetIT8951SystemInfo : 214001
Busy Timeout!
_readData16 preamble : 10000962
Busy Timeout!
_readData16 dummy : 10000961
Panel(W,H) = (0,0)Image Buffer Address = 0FW Version = LUT Version = Busy Timeout!
_writeCommand16(0x11) : 10000438
Busy Timeout!
_writeCommand16 preamble : 10000964
Busy Timeout!
_writeData16 : 10000953
Busy Timeout!
_writeData16 preamble : 10000963
Busy Timeout!
_writeData16 : 10000961
Busy Timeout!
_writeData16 preamble : 10000965
Busy Timeout!
_writeCommand16(0x39) : 10000914
Busy Timeout!
_writeCommand16 preamble : 10000962
Busy Timeout!
_IT8951GetVCOM : 10000958
Busy Timeout!
_writeData16 : 10000968
Busy Timeout!
_writeData16 preamble : 10000964
Busy Timeout!
_readData16 : 10000960
Busy Timeout!
_readData16 preamble : 10000962
Busy Timeout!
_readData16 dummy : 10000967
Busy Timeout!
_writeCommand16(0x39) : 10000914
Busy Timeout!
_writeCommand16 preamble : 10000963
Busy Timeout!
_IT8951SetVCOM : 10000958
Busy Timeout!
_writeData16 : 10000967
Busy Timeout!
_writeData16 preamble : 10000965
Busy Timeout!
_writeData16 : 10000964
Busy Timeout!
_writeData16 preamble : 10000965
Busy Timeout!
_IT8951SetVCOM : 10000964
Busy Timeout!
_writeCommand16(0x39) : 10000919
Busy Timeout!
_writeCommand16 preamble : 10000963
Busy Timeout!
_IT8951GetVCOM : 10000958
Busy Timeout!
_writeData16 : 10000970
Busy Timeout!
_writeData16 preamble : 10000965




Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 13, 2019, 11:35 am
@flyingbaloon,

sorry, I didn't notice your new addition to your post.

For some unknown reason your SPI communication doesn't work reliably.

The first transfers did work, as GetIT8951SystemInfo took 214ms.

Make sure the 5V supply to the IT8951 is strong and stable. I had problems on USB2, ok on USB3.

I will check with my 6" on IT8951 again. But this is difficult to diagnose.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 13, 2019, 11:42 am
@flyingbaloon,

I intend to add support for GDEW075T7 to the (experimental) library GxEPD2_4G, but I don't know when.
Thanks to you I have a bitmap example to test.

Jean-Marc

I have added support for GDEW075T7 to my (experimental) library GxEPD2_4G (https://github.com/ZinggJM/GxEPD2_4G)

### Version 1.0.1
- added support for GDEW075T7
- GDEW075T7 uses same wavetable as the other ones, no "official" (demo) yet
- GDEW075T7 grey level behaviour is less good than e.g. on GDEW0371W7
- some fixes and improvements

@flyingbaloon, your bitmap shows correctly with this library.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 13, 2019, 01:15 pm
@flyingbaloon,

you could try with reduced SPI speed, in lines 60 and 61 of GxEPD2_it60.cpp

Code: [Select]
  _spi_settings(24000000, MSBFIRST, SPI_MODE0),
  _spi_settings_for_read(1000000, MSBFIRST, SPI_MODE0)


e.g. change to:
Code: [Select]
  _spi_settings(10000000, MSBFIRST, SPI_MODE0),
  _spi_settings_for_read(4000000, MSBFIRST, SPI_MODE0)


for a test.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 14, 2019, 07:04 am
@ ZinggJM , thanks a lot for the time you're giving to help us out , really grateful for that , i will try out all the suggestions you pointed and report back .
Title: Re: Good Dispay ePaper for Arduino
Post by: Thoma67 on Dec 14, 2019, 09:18 am
@ZinggJM,

I think I bought them on the aliexpress Good display official store.
Black/white/red one : https://fr.aliexpress.com/item/32810038489.html?spm=a2g0s.9042311.0.0.681f6c37bbaO4Z (https://fr.aliexpress.com/item/32810038489.html?spm=a2g0s.9042311.0.0.681f6c37bbaO4Z)
Black/white/yellow one : https://fr.aliexpress.com/item/32846160662.html?spm=a2g0s.9042311.0.0.681f6c37bbaO4Z (https://fr.aliexpress.com/item/32846160662.html?spm=a2g0s.9042311.0.0.681f6c37bbaO4Z)
I was able to identify both and the b/w/r one runs perfectly with your library.
On the b/w/y one, the pixels that should be yellow remain desperately white.

b/w/r display
Code: [Select]

setup done
Power On : 89768
drawPicture : 15867700
Power Off : 20825
Power On : 91023
drawPicture : 15871260
Power Off : 20360
Power On : 90034
drawPicture : 15870948
Power Off : 20340
Power On : 89542
drawBitmap : 15866449
Power Off : 20770
Power On : 88880
update : 15865137
Power Off : 20290
Power On : 88584
update : 15871152
Power Off : 20082
Power On : 89386
update : 15870788
Power Off : 20823
Power On : 89464
drawPicture : 15867596
Power Off : 20413


b/w/y display
Code: [Select]

setup done
Power On : 80323
drawPicture : 3961276
Power Off : 40608
Power On : 78301
drawPicture : 3962026
Power Off : 41176
Power On : 78293
drawPicture : 3961703
Power Off : 40728
Power On : 78348
drawBitmap : 3961368
Power Off : 40718
Busy Timeout!
Power On : 20000470
Busy Timeout!
update : 20000342
Busy Timeout!
Power Off : 20000980
Power On : 77792
update : 3961689
Power Off : 40855
Power On : 77283
update : 3961825
Power Off : 40561
Power On : 77049
drawPicture : 3961261
Power Off : 41295


Thoma
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 14, 2019, 10:32 am
@Thoma67,

I can only give good answers if you answer all questions.

From the refresh times you have a b/w e-paper instead of a b/w/y one.
If it is from Good Display then it should have a white sticker on the backside, with the panel name on it.

I assume you used the same code, same constructor for both.
Then the different refresh times means they have different OTP wavetables.
I don't know the refresh time of the b/w panel with wavetable from OTP.

You could verify by using the constructor for the b/w. If partial update looks good, then the panel is b/w.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 14, 2019, 01:22 pm
@flyingbaloon,

you could try with reduced SPI speed, in lines 60 and 61 of GxEPD2_it60.cpp

Code: [Select]
  _spi_settings(24000000, MSBFIRST, SPI_MODE0),
  _spi_settings_for_read(1000000, MSBFIRST, SPI_MODE0)


e.g. change to:
Code: [Select]
  _spi_settings(10000000, MSBFIRST, SPI_MODE0),
  _spi_settings_for_read(4000000, MSBFIRST, SPI_MODE0)


for a test.

Jean-Marc

Hi , the display is not updating on my spark fun esp32 thing ,  but it worked on my firebeetle esp32 after  changing the VCOM value to the one given on my panel and changing the rst pin to one of the available pins and external power supply to the ITE driver board
Code: [Select]

GxEPD2_BW<GxEPD2_it60, GxEPD2_it60::HEIGHT> display(GxEPD2_it60(/*CS=5*/ SS, /*DC=*/ -1, /*RST=*/ 22, /*BUSY=*/ 4)); 


and the original spi speed worked fine
Code: [Select]
  _spi_settings(24000000, MSBFIRST, SPI_MODE0),
  _spi_settings_for_read(1000000, MSBFIRST, SPI_MODE0)


thanks again for the support  :)
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 14, 2019, 01:39 pm
@flyingbaloon,

for spark fun esp32 thing you either need to change the pin for CS, or change the constructor parameter:

Code: [Select]
static const uint8_t SS    = 2;
static const uint8_t MOSI  = 23;
static const uint8_t MISO  = 19;
static const uint8_t SCK   = 18;


from C:\Users\xxx\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\variants\esp32thing\pins_arduino.h

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Dec 15, 2019, 06:27 am
@ZinggJM  thanks now it works with my spark fun esp32 thing too. :) 
Title: Re: Good Dispay ePaper for Arduino
Post by: Thoma67 on Dec 15, 2019, 06:59 pm
@ZinggJM,

There is no white sticker on the back side.
On the FPC, both displays have the same part number printed :
WFT0420CZ15
LW

I use the same code (GxEPD_Example.ino) for both displays.

I tried with PartialUpdateExample.ino on both displays.
On the b/w/r, a value is printed and is increased before changing place and restart the increasing. This process is repeated several times.
On the b/w/y, only a picture is partially visible, no increasing value at all.

What can explain the big number of Busy Timeout! message?

I noticed something else: on the hypothetic b/w/y one, I see the picture on the back side in reverse video.

b/w/r
Code: [Select]
setup done
Power On : 90624
update : 2070695
update : 562292
Power Off : 20816
Power On : 91051
updateWindow : 562139
updateWindow : 561796
updateWindow : 561966
updateWindow : 562143
updateWindow : 561392
updateWindow : 562166
updateWindow : 561954
updateWindow : 561821
updateWindow : 561807
updateWindow : 562128
updateWindow : 562176
updateWindow : 561908
updateWindow : 563273
updateWindow : 562155
updateWindow : 561641
updateWindow : 561767
updateWindow : 562129
updateWindow : 561600
updateWindow : 562028
updateWindow : 562088
updateWindow : 562039
updateWindow : 561560
updateWindow : 562028
updateWindow : 561758
updateWindow : 561576
updateWindow : 562285
updateWindow : 562057
updateWindow : 561895
updateWindow : 562230
updateWindow : 562247
updateWindow : 561633
updateWindow : 562213
updateWindow : 561408
updateWindow : 561712
updateWindow : 561732
updateWindow : 562007
updateWindow : 562328
updateWindow : 561750
updateWindow : 561653
updateWindow : 561722
updateWindow : 562143
updateWindow : 562330
updateWindow : 561646
updateWindow : 562184
updateWindow : 561374
updateWindow : 561940
updateWindow : 562270
updateWindow : 561682
updateWindow : 562729
updateWindow : 561746
updateWindow : 561549
updateWindow : 561667
updateWindow : 562187
updateWindow : 561443
updateWindow : 562079
updateWindow : 562011
updateWindow : 561517
updateWindow : 561951
updateWindow : 562342
updateWindow : 561678
updateWindow : 561528
updateWindow : 561645
updateWindow : 561869
updateWindow : 561615
updateWindow : 561350
updateWindow : 561989
updateWindow : 561534
updateWindow : 562349
updateWindow : 561621
updateWindow : 562023
updateWindow : 562296
updateWindow : 562214
updateWindow : 562189
updateWindow : 564582
updateWindow : 561978
updateWindow : 561884
updateWindow : 561557
updateWindow : 562773
updateWindow : 562295
updateWindow : 561836
updateWindow : 562328
updateWindow : 561811
updateWindow : 562337
updateWindow : 561942
updateWindow : 561748
updateWindow : 563019
updateWindow : 562104
updateWindow : 562219
updateWindow : 561650
updateWindow : 561350
updateWindow : 561770
updateWindow : 562163
updateWindow : 561613
updateWindow : 561626
updateWindow : 562227
updateWindow : 562316
updateWindow : 561589
updateWindow : 562654
updateWindow : 562347
updateWindow : 562129
updateWindow : 561696
updateWindow : 561561
updateWindow : 562167
updateWindow : 561759
updateWindow : 561629
updateWindow : 562042
updateWindow : 561403
updateWindow : 561717
updateWindow : 562061
updateWindow : 561376
updateWindow : 561610
updateWindow : 562322
updateWindow : 562034
updateWindow : 562135
Power Off : 20824


b/w/y
Code: [Select]
setup done
Power On : 76774
update : 2081869
update : 564686
Power Off : 20826
Busy Timeout!
Power On : 10000594
Busy Timeout!
updateWindow : 10000717
Busy Timeout!
updateWindow : 10000281
Busy Timeout!
updateWindow : 10000521
Busy Timeout!
updateWindow : 10000832
Busy Timeout!
updateWindow : 10000962
Busy Timeout!
updateWindow : 10000302
Busy Timeout!
updateWindow : 10000761
Busy Timeout!
updateWindow : 10000934
Busy Timeout!
updateWindow : 10000214
Busy Timeout!
updateWindow : 10000776
Busy Timeout!
updateWindow : 10000629
Busy Timeout!
updateWindow : 10000744
Busy Timeout!
updateWindow : 10000807
Busy Timeout!
updateWindow : 10000876
Busy Timeout!
updateWindow : 10001315
Busy Timeout!
updateWindow : 10001073
Busy Timeout!
updateWindow : 10000255
Busy Timeout!
updateWindow : 10000905
Busy Timeout!
updateWindow : 10000806
Busy Timeout!
updateWindow : 10000545
Busy Timeout!
updateWindow : 10000928
Busy Timeout!
updateWindow : 10000594
Busy Timeout!
updateWindow : 10000861
Busy Timeout!
updateWindow : 10001131
Busy Timeout!
updateWindow : 10000803
Busy Timeout!
updateWindow : 10000826
Busy Timeout!
updateWindow : 10000995
Busy Timeout!
updateWindow : 10000580
Busy Timeout!
updateWindow : 10000599
Busy Timeout!
updateWindow : 10000278
Busy Timeout!
updateWindow : 10001087
Busy Timeout!
updateWindow : 10000329
Busy Timeout!
updateWindow : 10000447
Busy Timeout!
updateWindow : 10000481
Busy Timeout!
updateWindow : 10000618
Busy Timeout!
updateWindow : 10000284
Busy Timeout!
updateWindow : 10001054
Busy Timeout!
updateWindow : 10000685
Busy Timeout!
updateWindow : 10001789
Busy Timeout!
updateWindow : 10000192
Busy Timeout!
updateWindow : 10000860
Busy Timeout!
updateWindow : 10000567
Busy Timeout!
updateWindow : 10000534
Busy Timeout!
updateWindow : 10000556
Busy Timeout!
updateWindow : 10000393
Busy Timeout!
updateWindow : 10000847
Busy Timeout!
updateWindow : 10000258
Busy Timeout!
updateWindow : 10001093
Busy Timeout!
updateWindow : 10000395
Busy Timeout!
updateWindow : 10000669
Busy Timeout!
updateWindow : 10001100
Busy Timeout!
updateWindow : 10000523
Busy Timeout!
updateWindow : 10000464
Busy Timeout!
updateWindow : 10000247
Busy Timeout!
updateWindow : 10001034
Busy Timeout!
updateWindow : 10000401
Busy Timeout!
updateWindow : 10001134
Busy Timeout!
updateWindow : 10000685
Busy Timeout!
updateWindow : 10000848
Busy Timeout!
updateWindow : 10001083
Busy Timeout!
updateWindow : 10001083
Busy Timeout!
updateWindow : 10000461
Busy Timeout!
updateWindow : 10000747
Busy Timeout!
updateWindow : 10001124
Busy Timeout!
updateWindow : 10002357
Busy Timeout!
updateWindow : 10000990
Busy Timeout!
updateWindow : 10000981
Busy Timeout!
updateWindow : 10000630
Busy Timeout!
updateWindow : 10000665
Busy Timeout!
updateWindow : 10000599
Busy Timeout!
updateWindow : 10000614
Busy Timeout!
updateWindow : 10000973
Busy Timeout!
updateWindow : 10000632
Busy Timeout!
updateWindow : 10001053
Busy Timeout!
updateWindow : 10001003
Busy Timeout!
updateWindow : 10000952
Busy Timeout!
updateWindow : 10000502
Busy Timeout!
updateWindow : 10000260
Busy Timeout!
updateWindow : 10000928
Busy Timeout!
updateWindow : 10000815
Busy Timeout!
updateWindow : 10000379
Busy Timeout!
updateWindow : 10000356
Busy Timeout!
updateWindow : 10000300
Busy Timeout!
updateWindow : 10000826
Busy Timeout!
updateWindow : 10000907
Busy Timeout!
updateWindow : 10000899
Busy Timeout!
updateWindow : 10000469
Busy Timeout!
updateWindow : 10001152
Busy Timeout!
updateWindow : 10001814
Busy Timeout!
updateWindow : 10000999
Busy Timeout!
updateWindow : 10000629
Busy Timeout!
updateWindow : 10001065
Busy Timeout!
updateWindow : 10000885
Busy Timeout!
updateWindow : 10000746
Busy Timeout!
updateWindow : 10000718
Busy Timeout!
updateWindow : 10000678
Busy Timeout!
updateWindow : 10000605
Busy Timeout!
updateWindow : 10000484
Busy Timeout!
updateWindow : 10000735
Busy Timeout!
updateWindow : 10000433
Busy Timeout!
updateWindow : 10000988
Busy Timeout!
updateWindow : 10000551
Busy Timeout!
updateWindow : 10000681
Busy Timeout!
updateWindow : 10000172
Busy Timeout!
updateWindow : 10000580
Busy Timeout!
updateWindow : 10002210
Busy Timeout!
updateWindow : 10000180
Busy Timeout!
updateWindow : 10000698
Busy Timeout!
updateWindow : 10000143
Busy Timeout!
updateWindow : 10001105
Busy Timeout!
updateWindow : 10000695
Busy Timeout!
updateWindow : 10002518
Busy Timeout!
updateWindow : 10000364
Busy Timeout!
updateWindow : 10001151
Busy Timeout!
Power Off : 10000983
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 16, 2019, 08:36 am
@Thoma67,

I still need to learn how to efficiently and systematically deal with Newbie questions and posts.
I have to ask for complete information first, before trying to guess and give answers.

I know what e-paper panels you should have, from the links you provided.
I know which library you use, GxEPD, from your first post.
I don't know how what processor board you use.
I don't know how you connect your panels to the processor board, e.g. connection module.

My 4.2" b/w and b/w/r panels all have the same inking on the flex cable, WFT0420CZ15.
Most likely because both use the same controller. This is no help for distinguishing between.

I tried to run one of my b/w with the code for b/w/r (I never did before), to see if this helps.
I get refresh times of 3956093us (partial) and 4657127us (full), I'd expect these to be the same for wavetable from OTP.
I get inverse color and no partial update on screen.
So this test would be able to distinguish between b/w and 3-color panel.

I tried to run my 4.2" b/w/r panel with the code for b/w (I never did before), to see if this helps.
I get refresh times of 563640us (partial) and 1546611us (full); these times come from the wavetables in the driver code.
I get quite good b/w behaviour for full and partial refresh, but with more ghosting than with a b/w panel.
So this test could be able to distinguish between b/w and 3-color panel, if you have a b/w panel for comparison.

Your second post shows a refresh time of e.g. 3961276us.
From your posts, your panel seems to be a 3-color panel.

I conclude that the controller on your b/w/y panel is programmed with the wrong wavetable in OTP, the wavetable for b/w instead of 3-color.

You have an additional issue, most likely with your connections, which causes the BUSY timeouts.
This means your SPI communication doesn't work reliably with your b/w/y panel.
But your first test provides enough information for the above conclusion.

You should ask the vendor for a replacement.

Don't throw away your b/w/y panel, I might be able to provide a driver code with wavetable to use with it (I need to read out the OTP wavetable from my b/w/r to do this).

You could send a link to this post to the vendor; maybe it helps.

Jean-Marc

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 16, 2019, 10:40 am
Thanks for the quick response Jean-Marc! That helped clear things up for me.

Are you a clone, or do you have the same issue, or did the response help you in any other way?

Please explain your response to your audience.
Title: Re: Good Dispay ePaper for Arduino
Post by: Thoma67 on Dec 18, 2019, 07:18 am
@ZinggJM,

The processor board is a Wemos D1 mini.
The connection module is a DESPI-C02.

You can find a short video (https://we.tl/t-gZpucc73mk (https://we.tl/t-gZpucc73mk)) which shows the b/w/r display first and then the b/w/y display. Both displays are driven with the same firmware.

Thoma67
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Dec 18, 2019, 08:28 am
@Thoma67,

thank you for the video. It doesn't change my conclusion.

Did you contact the vendor? I assume you got a confirmation mail for your order.
Or you can contact their support through the popup on their web-site:
http://www.e-paper-display.com/ (http://www.e-paper-display.com/)
I had mail contact with Edith.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 04, 2020, 03:38 pm
Version 1.2.4 of GxEPD2 is available. Installable through Library Manager. Source GxEPD2 (https://github.com/ZinggJM/GxEPD2)

- added support for GDEH0154D67 1.54" b/w, replacement for GDEP015OC1
- added GxEPD2_SerialFlash_Loader, WiFi bitmap downloader for SPI-flash
- added GxEPD2_SerialFlash_Example, SPI-flash example, e.g. for Winbond 25Q16BVSIG
- minor fixes and comment cleanups
- fix refresh(false) in upper layer: add powerOff() after full refresh

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: tenten8401 on Jan 04, 2020, 11:16 pm
Version 1.2.4 of GxEPD2 is available. Installable through Library Manager. Source GxEPD2 (https://github.com/ZinggJM/GxEPD2)

- added support for GDEH0154D67 1.54" b/w, replacement for GDEP015OC1
- added GxEPD2_SerialFlash_Loader, WiFi bitmap downloader for SPI-flash
- added GxEPD2_SerialFlash_Example, SPI-flash example, e.g. for Winbond 25Q16BVSIG
- minor fixes and comment cleanups
- fix refresh(false) in upper layer: add powerOff() after full refresh

Jean-Marc

Hi, I didn't see a place to report this on GitHub, but when using the latest version of the library I can't seem to get it to compile on my desktop using PlatformIO with the esp32dev board.. The error is "GxEPD2/src/GxEPD2_BW.h:51:17: error: 'GxEPD2_BW<GxEPD2_213_B73, 250u>::epd2' will be initialized after [-Werror=reorder]".

I think it may be due to a stricter compile check or something, I'm not 100% sure.. It works on my laptop with an older GCC/PlatformIO version.

EDIT: So I looked on my laptop, it's actually a warning on there, and newer PlatformIO versions are treating this "reorder" warning as an error..


Here's an image of the issue:
(https://i.imgur.com/u1CKbYl.png)

(https://i.imgur.com/0Z6ejwF.png)

The code I am using is as follows: https://ghostbin.co/paste/xctkx
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 05, 2020, 06:30 am
@tenten8401,

Welcome to the forum! Please read General Guidance and How to use the Forum (https://forum.arduino.cc/index.php?topic=652237.0)
and the topic of the first link: How to use this forum - please read. (https://forum.arduino.cc/index.php?topic=148850.0)

I can't read your embedded pictures, please put code and error messages into code-tagged windows, using the </>-command symbol.

Thank you for reporting this warning/error, I had seen it occasionally, but didn't pay enough attention.
In fact, I had fixed it, but incomplete:

Code: [Select]
#if ENABLE_GxEPD2_GFX
    GxEPD2_BW(GxEPD2_Type epd2_instance) : epd2(epd2_instance), GxEPD2_GFX(epd2, GxEPD2_Type::WIDTH, GxEPD2_Type::HEIGHT)
#else
    GxEPD2_BW(GxEPD2_Type epd2_instance) : Adafruit_GFX(GxEPD2_Type::WIDTH, GxEPD2_Type::HEIGHT), epd2(epd2_instance)
#endif


It occurs only if #if ENABLE_GxEPD2_GFX is true.

I will try to remember to fix this in the next release.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Jan 12, 2020, 06:35 pm
GDEH0213B73 have resolition 250*122
http://www.e-paper-display.com/products_detail/productId=458.html

but in GxEPD2 declare as 250*128:
https://github.com/ZinggJM/GxEPD2/blob/master/src/epd/GxEPD2_213_B73.h
Quote
class GxEPD2_213_B73 : public GxEPD2_EPD
{
  public:
    // attributes
    static const uint16_t WIDTH = 128;
    static const uint16_t HEIGHT = 250;
why?

GxEPD have additional to WIDTH parameter
Quote
#define GxGDEH0213B73_VISIBLE_WIDTH 122
but in GxEPD2 I don't see any similar
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 12, 2020, 06:55 pm
@mutexx,

width needs to be a multiple of 8 for easy handling.
The controller buffer has a width of 128, but only 122 pixels are visible on the panel.

For GxEPD2 I took the design decision that the application has to deal with this, for sake of simplicity.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Jan 12, 2020, 07:08 pm
thanks!
I adapted an application written for GxEPD for library GxEPD2. I got an image cropped from the top by a few pixels. Adding +3 to all the coordinates Y for display.drawBitmap and display.setCursor solved the problem, but it seemed strange to me
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Jan 21, 2020, 04:36 pm
Hello @ZinggJM, hope you are doing well .


I have made a pcb using the IT8951 schematic provided by waveshare, all the while thinking waveshare would support me with the firmware as i was using their 6 inch HD displays , but they informed me that they will not share the firmware . Now I'm in a kinda messy situation as it is expensive to get the firmware written from scratch .

could you please guide me as to how to go about this.

Thanks for the help.


Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 21, 2020, 04:58 pm
@flyingbaloon,

sorry for you. Unfortunately I have no idea about their firmware. But the firmware seems to be in the on board flash chip, and there is a connector for the flash (to program it, most likely). Maybe you can copy?

Good Luck!
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Jan 21, 2020, 04:59 pm
Thanks , will give it a try
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 21, 2020, 05:04 pm
Don't forget to activate reset to the board while accessing the flash from external.
Title: Re: Good Dispay ePaper for Arduino
Post by: flyingbaloon on Jan 22, 2020, 11:32 am
@ZinggJM thanks , will keep this in mind
Title: Re: Good Dispay ePaper for Arduino
Post by: woessmich on Jan 26, 2020, 11:16 am
@ZinggJM: First of all: Thank you so much for the fantastic work on this library!

I am working on a board with an ESP32, LoRa and some sensors and started with the old 1.54" display (GDEP015OC1).

Code: [Select]
GxEPD2_BW<GxEPD2_154, GxEPD2_154::HEIGHT> display(GxEPD2_154(/*CS=5*/ 15, /*DC=*/17, /*RST=*/16, /*BUSY=*/4));

This works fine and in standby the whole circuit uses 62 uA of power which is in the expected range.

Now, I am keeping the exact same setup, PCB and code, just changing the driver to use the replacement display (GDEH0154D67):
Code: [Select]
GxEPD2_BW<GxEPD2_154_D67, GxEPD2_154_D67::HEIGHT> display(GxEPD2_154_D67(/*CS=5*/ 15, /*DC=*/17, /*RST=*/16, /*BUSY=*/4));


And suddenly, the standby current "jumps" to 630 uA. This is significant and I am wondering if more modifications in my code are needed than just the initiation line or if some different hardware is needed or the driver is not yet capable of bringing the display into standby correctly?

Anyone else seen this behaviour?

Thank you
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 26, 2020, 03:06 pm
@woessmich,

I don't remember, but I think I forgot to check and measure current drawn.

Code: [Select]
void GxEPD2_154::_PowerOff()
{
  _writeCommand(0x22);
  _writeData(0xc3);
  _writeCommand(0x20);
  _waitWhileBusy("_PowerOff", power_off_time);
  _power_is_on = false;
  _using_partial_mode = false;
}

versus
Code: [Select]
void GxEPD2_154_D67::_PowerOff()
{
  if (_power_is_on)
  {
    _writeCommand(0x22);
    _writeData(0x83);
    _writeCommand(0x20);
    _waitWhileBusy("_PowerOff", power_off_time);
  }
  _power_is_on = false;
  _using_partial_mode = false;
}


Maybe the controller needs be told to first turn on (or keep on) power, to then turn it off.

You can try to change line 314 to 0xC3.

(0x22:activation sequence, 0x20 master activation)

I will check this later, too busy for now.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: woessmich on Jan 26, 2020, 06:13 pm
OK, Thank you for the quick and really helpful reply.
I tried your suggestion but it did not change anything.

After much more testing, I am convinced the driver is working correct because if I disable hibernate manually, current increases from 630 to 660 uA even.

It seems to be related to the hardware driver I am using.
With the standard Waveshare "1.54 e-Paper Module" (I bought it with the old display initially) both versions of the display show a hibernate current of 57 uA (display only this time, measured on VCC)

With my own driver-board, which is based on the old (https://www.waveshare.com/w/upload/archive/5/5b/20200103064017%211.54inch_e-Paper_Schematic.pdf) Waveshare schematics, I measure 29 uA with the old and 630 uA with the V2 display. Something is behaving differently with these new displays from a hardware perspective and I also noticed that the display gets cloudy after some seconds in hibernate like if the high voltage is not disabled properly with my board on the V2 display. I am not sure why, more measuring needed.

This came really unexpected as the old display behaved so well. I guess, I have to do some more research here what I have to change on the hardware side.

Thank you again
Michael




Title: Re: Good Dispay ePaper for Arduino
Post by: woessmich on Jan 27, 2020, 10:51 pm
I want to add some insights after more testing, in case in helps someone else at some point:
With the old 1.54" display (GDEP015OC1) current draw during deep sleep of the ESP32 makes a huge difference (150 uA) if I use the internal pulldown on the CS-pin while sleeping.
Code: [Select]
gpio_pulldown_en(GPIO_NUM_15);

Unfortunately, with the new display (V2; D67) I never get below about 600 uA with my board, regardless what I do to the pins.
However, although this sounds a bit unscientific: when moving around my finger on the connector pins (Yes, this should be avoided for several reasons!), it sometimes goes below that value, so I am convinced there is something going on that can be avoided somehow. I have just no idea how as neither pulling low any of the pins nor pulling them high had any effect.

If there is somebody out there with experience on designing a board around the ESP32 and this display and likes to share some insights, I would appreciate it.

Michael



Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 28, 2020, 05:43 am
@woessmich,

I didn't check, but I think I saw in the controller specs of the D67 that it activates the BUSY line during hibernate. So, if you have any load on the BUSY line, this could explain the current draw.

Do you only hibernate the display, or do you use deep sleep of the ESP32?
The ESP32 has internal pull-ups or pull-downs on the "strapping pins", for boot mode selection.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: woessmich on Jan 28, 2020, 03:42 pm
Yes, you remember correctly. It is mentioned in the table on page 20.

The same is not mentioned in the datasheet for the old version which does not necessarily mean anything.

Yes, I hibernate (deep sleep) both the ESP32 and the epaper. A lot can be done by code with the ESP32 pins during deep sleep. There are not too many pins involved in the e-paper communication and at least I tried pull-down and pull-up before sleep for all of them with no significant difference. Maybe there is other things I can do.

Do you know why pin 4 (epaper) is listed as NC (keep open) in the datasheet but connected to a decoupling capacitor C1 in the waveshare schematics for the board (https://www.waveshare.com/w/upload/5/5b/1.54inch_e-Paper_Schematic.pdf)?
This does not seem to hurt as the waveshare board has it from the looks of it and it works well with both display types. Also the inductor is different: 10uH vs 68uH.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 28, 2020, 05:23 pm
Quote
Do you know why pin 4 (epaper) is listed as NC (keep open) in the datasheet but connected to a decoupling capacitor C1 in the waveshare schematics for the board?
No.
Title: Re: Good Dispay ePaper for Arduino
Post by: woessmich on Jan 29, 2020, 10:46 pm
... more testing...

What I found is that the RST pin of the display needs to be kept HIGH during hibernate/deep sleep of the display. As soon as it drops to LOW, the display's current draw increases from single digit uA to about 0.6mA. Probably it just wakes up again.

With the standard definition given, GPIO16 is used for the RST pin and I have not been able to keep GPIO16 at a high level during deep sleep of the ESP32.
From what I read in documentation and other pages, it should work with
Code: [Select]
gpio_hold_en(GPIO_NUM_16); but it does not.
Same goes for GPIO17 and maybe all other pins that are not RTC_GPIOs.

However, e.g. GPIO13 is easy to keep HIGH using the command
Code: [Select]
gpio_hold_en(GPIO_NUM_13); just before going to deep sleep of the ESP32.

The Waveshare breakout board, using a level converter, seems to keep the state during sleep of the ESP32 while my own board, with no need for the level converter, does not.

If there really is no way to keep the pin in HIGH state, using GPIO16 for RST might not the best choice when going for low power applications with the ESP32.
Or of course an external pull-up on the pin can be used to solve the issue.

Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Jan 30, 2020, 11:01 am
@woessmich,

I measure the following current drawn through the 3.3V VCC line to the DESPI-C02 with connected GDEH0154D67 e-paper panel:

up to 3mA during full refresh, ~1mA during partial refresh, 20uA during powerOff, 0.6uA during hibernate.

I have not planned to investigate current drawn during processor deep sleep.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Feb 15, 2020, 09:40 am
News: e-paper displays with DES technology

I just discovered this Power Point presentation from Good Display about (their) new technology:

Display Electronic Slurry(DES) Introduction (http://www.e-paper-display.com/download_detail/downloadsId=942.html)

1.54 inch DES e-paper display high resolution 200x200 partial refresh GDEW0154M09 (http://www.e-paper-display.com/products_detail/productId=513.html)

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: tropic on Feb 15, 2020, 01:13 pm
Hello @ZinggJM,

I have a problem with panel GxGDEH0213B73 from Good Display.

I'm using the partial refresh mode with several refresh as you advise in a previous post. But the screen goes clear after few seconds under the sunlight.

Do you know this problem? Is there a prameter to avoid this?

Thanks for the help
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Feb 15, 2020, 02:40 pm
@tropic,

The only e-paper that claims to be UV-resistant is the GDEP015OC1, as far as I know.
You could try to add a UV filter. But it could also be caused or worsened by temperature.

There is no parameter to avoid differential refresh.
But you could replace line 407 by line 396 in GxEPD2_213_B73.cpp to use only full refresh.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: tropic on Feb 15, 2020, 02:56 pm
Thanks for your fast reply.

It's really weird because after a full refresh the screen remains the same even after several hours under
sunlight.
Title: Re: Good Dispay ePaper for Arduino
Post by: ZinggJM on Feb 15, 2020, 04:11 pm
@tropic,

try if calling powerOff() after partial update helps.

GxEPD2 calls powerOff() only after full update.

Jean-Marc
Title: Re: Good Dispay ePaper for Arduino
Post by: tropic on Feb 15, 2020, 05:09 pm
There is no more sun, I will try tomorrow morning. Thanks
Title: Re: Good Dispay ePaper for Arduino
Post by: Bjack795 on Feb 27, 2020, 01:36 am
News: e-paper displays with DES technology

I just discovered this Power Point presentation from Good Display about (their) new technology:

Display Electronic Slurry(DES) Introduction (http://www.e-paper-display.com/download_detail/downloadsId=942.html)

1.54 inch DES e-paper display high resolution 200x200 partial refresh GDEW0154M09 (http://www.e-paper-display.com/products_detail/productId=513.html)

Jean-Marc

Hi!
It seems very interesting, I'm glad that there are some researches going on in this field.
I've seen the presentation but they didn't mention speed improvements.
Anyways I'm impressed by the colours of the 6" full colour screen with the Dragon Ball image.

Regards
Title: Re: Good Dispay ePaper for Arduino
Post by: mutexx on Feb 28, 2020, 11:53 am
I'm using the partial refresh mode with several refresh as you advise in a previous post. But the screen goes clear after few seconds under the sunlight.
Have same problem with GDEH0213B73 and GxEPD2. The image disappears from the screen completely to white, even if I try to partial refresh a small part of it. If I do a full screen update, the behavior is the opposite, black areas remain black and white areas turn to gray. The image remains readable but the contrast is low. After a full screen refresh, I tried calling display.hibernate () but nothing changes