Go Down

Topic: Good Dispay ePaper for Arduino (Read 95613 times) previous topic - next topic

zubairu

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.

ZinggJM

@zubairu,

this is an issue with the ESP32 package: maximum ram usable is 96000 #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

Jean-Marc
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

flyingbaloon

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

ZinggJM

@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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

zubairu

@ZinggJM Thanks budy, you save my world. With half buffer after useing 1/2 height it works just fine.

flyingbaloon

#350
Dec 11, 2019, 09:32 am Last Edit: Dec 11, 2019, 10:45 am by flyingbaloon
@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





ZinggJM

#351
Dec 13, 2019, 11:35 am Last Edit: Dec 13, 2019, 11:58 am by ZinggJM
@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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

ZinggJM

@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

### 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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

ZinggJM

@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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

flyingbaloon

@ 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 .

Thoma67

@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
Black/white/yellow one : 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

ZinggJM

#356
Dec 14, 2019, 10:32 am Last Edit: Dec 14, 2019, 10:35 am by ZinggJM
@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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

flyingbaloon

@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  :)

ZinggJM

@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
No personal message please; any question may be useful for other users. Use code tags for code. Make links clickable with URL tags. Provide links to the product in question.

flyingbaloon

@ZinggJM  thanks now it works with my spark fun esp32 thing too. :) 

Go Up