// GxEPD2_HelloWorld.ino by Jean-Marc Zingg // see GxEPD2_wiring_examples.h 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 //#include #include #include #include #include // select the display class and display driver class in the following file (new style): #include "GxEPD2_display_selection_new_style.h" // or select the display constructor line in one of the following files (old style): #include "GxEPD2_display_selection.h" #include "GxEPD2_display_selection_added.h" // alternately you can copy the constructor from GxEPD2_display_selection.h or GxEPD2_display_selection_added.h to here // e.g. for Wemos D1 mini: //GxEPD2_BW display(GxEPD2_154_D67(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEH0154D67 // Connections for e.g. Waveshare ESP32 e-Paper Driver Board static const uint8_t EPD_BUSY = 25; static const uint8_t EPD_CS = 15; static const uint8_t EPD_RST = 26; static const uint8_t EPD_DC = 27; static const uint8_t EPD_SCK = 13; static const uint8_t EPD_MISO = 12; // Master-In Slave-Out not used, as no data from display static const uint8_t EPD_MOSI = 14; GxEPD2_3C display(GxEPD2_750c_Z08(EPD_CS, EPD_DC, EPD_RST, EPD_BUSY)); // GDEW075Z08 800x480, GD7965 void setup() { //display.init(115200); // default 10ms reset pulse, e.g. for bare panels with DESPI-C02 display.init(115200, true, 2, false); // USE THIS for Waveshare boards with "clever" reset circuit, 2ms reset pulse helloWorld(); display.hibernate(); } const char HelloWorld[] = "Hello World!"; void helloWorld() { display.setRotation(1); display.setFont(&FreeMonoBold9pt7b); display.setTextColor(GxEPD_BLACK); int16_t tbx, tby; uint16_t tbw, tbh; display.getTextBounds(HelloWorld, 0, 0, &tbx, &tby, &tbw, &tbh); // center the bounding box by transposition of the origin: uint16_t x = ((display.width() - tbw) / 2) - tbx; uint16_t y = ((display.height() - tbh) / 2) - tby; display.setFullWindow(); display.firstPage(); do { display.fillScreen(GxEPD_WHITE); display.setCursor(x, y); display.print(HelloWorld); } while (display.nextPage()); } void loop() {};