I am going out of my mind. I have been trying to get this work for am embarrassing amount of time.
I cannot get my Waveshare 2.9 epaper B&W to display anything. Nothing. Not a jot of success. Help. I am out of ideas and about to give up.
What I have done:
changed the jumper on the back to a 3 wire SPI. (Was this correct?)
wired it up to a LoLin NodeMCO v3 directly. This means I can power it from USB and have no other components. I have used what seems to be the standard wiring scheme, which is below.
Waveshare used GDEH029A1 on their original board. GDEW029T5 is less likely.
You could try all versions.
The actual version of the Waveshare board has the "clever" reset circuit. From GxEPD2 README.md:
- note that Waveshare bords with "clever" reset circuit may need shortened reset pulse
- use `init(115200, true, 2, false)` for Waveshare boards with "clever" reset circuit
changed the jumper on the back to a 3 wire SPI. (Was this correct?)
No. GxEPD2 does not support 3 wire SPI (9bit SPI transfers instead of DC line).
Please report the inking on the flex connector. Then I can compare with the panels I have.
If the GDEW029T5 is used, then there would be an issue; it might be GDEW029T5D. See also this post.
I have ordered this panel to check. It is on its slow way from China, ordered through AliExpress.
I have re-instated the original 4 wire SPI soldered connector. The display has a 'V2' sticker on the back and is marked rev 2.1, the V2 sticker Waveshare have told me means it is b/w.
The flex connector of the b/w display has written on it (I assume you mean the flexible connector between the display and control PCB). Can send pictures if needed, just let me know:
TEST3 TEST1 TEST2 FPC-7519rev.b TEST4
I have added the adjusted code mentioned (see below). I have tried with this code change for all the four display versions without any success. Still I am not getting any response from the display.
Incidentally, the display currently has a load of static noise on teh display. It appeared during the testing. I assume that when it correctly receives a command to display text it will either partially or fully be cleared.
I could use either the b/w/y or a b/w/r one that I also bought at the same time. Though, adding more different permutations might not be helpful in eliminating the problem, so am hesitant to do so.
It blows my mind that these boards are different and that they are not labelled...
// GxEPD2_MinimumExample.ino by Jean-Marc Zingg
// purpose is e.g. to determine minimum code and ram use by this library
// see GxEPD2_wiring_examples.h of GxEPD2_Example for wiring suggestions and examples
// if you use a different wiring, you need to adapt the constructor parameters!
// uncomment next line to use class GFX of library GFX_Root instead of Adafruit_GFX, to use less code and ram
//#include <GFX.h>
#include <GxEPD2_BW.h> // including both doesn't use more code or ram
#include <GxEPD2_3C.h> // including both doesn't use more code or ram
// select the display class and display driver class in the following file (new style):
#include "GxEPD2_display_selection_new_style.h"
// alternately you can copy the constructor from GxEPD2_display_selection.h or GxEPD2_display_selection_added.h of GxEPD2_Example to here
// e.g. for Wemos D1 mini:
//GxEPD2_BW<GxEPD2_154_D67, GxEPD2_154_D67::HEIGHT> display(GxEPD2_154_D67(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEH0154D67
void setup()
{
display.init(115200, true, 2, false);
// comment out next line to have no or minimal Adafruit_GFX code
display.setTextColor(GxEPD_BLACK);
display.firstPage();
do
{
display.fillScreen(GxEPD_WHITE);
// comment out next line to have no or minimal Adafruit_GFX code
display.print("Hello World!");
}
while (display.nextPage());
}
void loop() {};
bad news, this e-paper panel is not supported by GxEPD2.
I found a panel with the same inking. I had put a sticker "029 defekt" on it.
I had got it from a donator to find out if I can get it to work.
This panel doesn't seem to come from Good Display, but I don't know.
On the backside it has a sticker "DEPG0290BNS800F6HP--DK".
You could try to run it with the Waveshare demo code.
And you could ask Waveshare where the panel comes from and what controller it uses.
Maybe they have specs for the panel and the controller.
And I found another panel with this inking. It is a GDEM029T94.
It has the same kind of sticker on the backside as the defective one, but with "GDEM029T94" on it.
But you told you tried this, so I don't know.
You could take a look at diagnostic output in Serial Monitor and maybe report it in a code window.
This to check if your SPI communication works.
Waveshare have provided Arduino drivers in the past. I grabbed a copy here a while ago and fixed some bugs. I did use the ESP8266 with the 2.9 display driver and it worked OK.
Due to the passage of time (and the "retiring" of all my ePaper projects...) I am not able to provide more help!
I had the same problem with DOIT ESP32 DEVKIT1 and waveshare 2.9inch Rev2.1
I wrote an email to waveshare service and the answer was:
The driver of the new e-Paper is different from the old version and cause the driver codes to be different.
I'm sorry about it.
How about referring to our demo codes and try to combine the two codes?
it is unacceptable that the hardware is changed with one not compatible with the past, keeping the same code and part number
no idea how to combine the two codes. Jean-Marc Zingg any idea?
PS it is used in a cosmic ray detector for high school. Ten have been assembled last year and sell wordwide. Now we want restart the production 2021 but I am blocked
And just to make sure we are discussing the same device, please post a link (clickable) to the device you bought.
Please also tell which constructors you tried with GxEPD2. And if you used the init() method with the shortened reset pulse for the "clever" reset circuit of the Waveshare board (see README.md). And report the inking on the flex connector of the panel.
I think the 2.9" b/w e-paper board from Waveshare uses the GDEM029T94 panel.
GxEPD2 and its examples should work with it. But I don't have the actual version from Waveshare.
Thank you very much, Jean.Marc, either for your answer and for your excellent library.
Sorry for the delay, I was out during last week. I had the possibility to read but not to work on harware.
Following your suggestions, I test the display with GxEPD2 example and I found that it work with GDEM029T94.
But now I have a big problem, the code for the educational cosmic ray detectors, which took more than a year of work, produced and sold worldwide by a specialized firm last year, was written with the GxEPD libraries and not with the GxEPD2.
I have not found the GxEPD2_290_T94 under GxEPD.
I also tried to update the code with the GXEPD2 but there are too many differences. For example, there is no drawExampleBitmap or updateWindow. Replacing them with drawInvertedBitmap and setPartialWindow didn't work. Rewriting the code of a working and production object takes an unacceptable amount of time.
The question is: how can I use GxEPD2_290_T94 under GxEPD?
Thank you in advance,
GxEPD lags behind GxEPD2, not by purpose, but because of my limited time and resources.
I think there are more users and projects with GxEPD than GxEPD2, so I always intended to update GxEPD also.
I am somewhat driven by user feedback. And naturally I get more feedback for new panels.
And I promote GxEPD2 for new users and new project, as I think it is easier to use.
I take note of your requirement, and will add support for GDEM029T94 to GxEPD.
I just can't tell how soon this will be.
Dear Jean-Marc
thanks for your kindness and availability.
And thank you again, especially for the excellent library you wrote.
I started this project in 2019 by developing both hardware and software. The object went into production in 2020. Setting up a production line is not easy for a medium-small company, but in the end we succeeded and the didactic modules were sold all over the world. When production 2021 started and the display was not working, my arms dropped. A year of work thrown away and a few months to rewrite the firmware.
The subject is as follows:
Thanks again for your kindness and availability. I look forward with confidence but, at least now, there is a prospect of a solution.
Dear Jean-Marc
thanks again for your kindness and availability.
The new T94 library works with both GxEPD_EXAMPLE and my code.
You saved me at least a month of work