I have to admit that I am amateur with both Arduino and e-ink displays. The solution to my problem is probably very simple and I feel embarrassed for not being able to figure it out after spending hours. Thank you in advance for your help!
The display I have is GDEW029I6FD (2.9 inch e ink flexible ultra-thin e-paper display); the driver is e-Paper Driver HAT Rev 2.3 from WaveShare; and the board I have is Arduino Mega (ELEGOO MEGA2560 R3).
I can get my setup to work with the WaveShare demo (https://www.waveshare.com/wiki/2.9inch_e-Paper_HAT_(D)_Manual#Working_With_Arduino), provided that I connect the VCC pin to 3.3V instead of 5V.
I can't get the same setup to work with GxEPD2.
For the GxEPD2_HelloWorld Example, I have tried the following:
- Connecting the pins to MEGA according to the wiring example:
// mapping suggestion for Arduino MEGA
// BUSY -> 7, RST -> 9, DC -> 8, CS-> 53, CLK -> 52, DIN -> 51
- Selecting the constructor in GxEPD2_HelloWorld.ino with:
#include "GxEPD2_display_selection.h"
#include "GxEPD2_display_selection_added.h"
- Selecting the display setting in GxEPD2_display_selection.h, where I uncommented:
#if defined(ARDUINO_AVR_MEGA2560) // Note: SS is on 53 on MEGA
.....
GxEPD2_BW<GxEPD2_290_I6FD, MAX_HEIGHT(GxEPD2_290_I6FD)> display(GxEPD2_290_I6FD(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEW029I6FD 128x296, UC8151D
....
- Selecting reset pulse in the setup() of GxEPD2_HelloWorld.ino:
display.init(115200); // default 10ms reset pulse, e.g. for bare panels with DESPI-C02
The e-paper display remains white after running the code, with the following output from from the Serial Monitor:
15:13:40.826 -> _P5136
15:13:40.826 -> _Update_Full : 12
15:13:40.826 -> _PowerOff : 12
15:13:40.826 -> _PowerOff : 12
15:13:41.740 -> >���.�
Do you know what might be the issue?
Please let me know if you need more information.