Go Down

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

Thoma67

@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

ZinggJM

@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

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

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

Thoma67

@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) which shows the b/w/r display first and then the b/w/y display. Both displays are driven with the same firmware.

Thoma67

ZinggJM

@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/
I had mail contact with Edith.

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

Version 1.2.4 of GxEPD2 is available. Installable through Library Manager. Source 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
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.

tenten8401

#366
Jan 04, 2020, 11:16 pm Last Edit: Jan 05, 2020, 03:23 am by tenten8401
Version 1.2.4 of GxEPD2 is available. Installable through Library Manager. Source 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:




The code I am using is as follows: https://ghostbin.co/paste/xctkx

ZinggJM

@tenten8401,

Welcome to the forum! Please read General Guidance and How to use the Forum
and the topic of the first link: How to use this forum - please read.

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

mutexx

#368
Jan 12, 2020, 06:35 pm Last Edit: Jan 12, 2020, 06:44 pm by mutexx
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

ZinggJM

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

mutexx

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

flyingbaloon

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.



ZinggJM

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

Don't forget to activate reset to the board while accessing the flash from external.
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.

Go Up