diff --git a/README.md b/README.md index 03f6148..eba7f80 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ - GDEW0213Z16 2.13" b/w/r 104x212, UC8151 (IL0373) - GDEW0213Z19 2.13" b/w/r 104x212, UC8151D - GDEY0213Z98 2.13" b/w/r 122x250, SSD1680 +- GDEY0213F51 2.13" 4-color 122x250, JD79661 - DEPG0213BN 2.13" b/w 122x250, SSD1680, e.g. LILYGO® TTGO T5 V2.3.1 2.13 inch - GDEY0213B74 2.13" b/w 122x250, SSD1680 - GDEW026T0 2.6" b/w 152x296, UC8151 (IL0373) @@ -132,6 +133,7 @@ - GDEW075Z08 7.5" b/w/r 800x480, EK79655 (GD7965) - GDEH075Z90 7.5" b/w/r 880x528, SSD1677 - GDEM102T91 10.2" b/w 960x640, SSD1677 +- GDEM1085T51 10.85 b/w 1360x480, JD79686AB - GDEH116T91 11.6" b/w 960x640, SSD1677 - GDEY116Z91 11.6" b/w/r 960x640, SSD1677 - GDEW1248T3 12.48" b/w 1304x984, UC8179 @@ -148,13 +150,12 @@ - ES103TC1 10.3" grey levels, 1872x1404, on Waveshare e-Paper IT8951 Driver HAT ### I can and will only support e-paper panels I have! -- promotion panels from suppliers are welcome, to add support to GxEPD2 -- donation panels from users are welcome, to add support to GxEPD2 +- I can't accept panel donations to add support to GxEPD2 currently, I need a break. +- I can take note of panels of interest for users, to maybe add support later. ### Version 1.5.7 -- version for ongoing additions, work in progress -- GDEY0213F51 2.13" 4-color 122x250 -- GDEM1085T51 10.85 b/w 1360x480 +- added support for GDEY0213F51 2.13" 4-color 122x250, JD79661 +- added support for GDEM1085T51 10.85 b/w 1360x480, JD79686AB #### Version 1.5.6 - version for ongoing fixes and additions - added support for GYE042A87 4.2" b/w 400x300 diff --git a/examples/GxEPD2_Example/GxEPD2_Example.ino b/examples/GxEPD2_Example/GxEPD2_Example.ino index d120ddf..6109188 100644 --- a/examples/GxEPD2_Example/GxEPD2_Example.ino +++ b/examples/GxEPD2_Example/GxEPD2_Example.ino @@ -1483,13 +1483,13 @@ void drawBitmaps1360x480() if (display.epd2.panel == GxEPD2::GDEM1085T51) { display.drawImage(Bitmap1360x480_1, 0, 0, display.epd2.WIDTH, display.epd2.HEIGHT, false, false, true); - delay(3000); + delay(2000); display.drawImage(Bitmap1360x480_p1, 0, 0, display.epd2.WIDTH, display.epd2.HEIGHT, false, false, true); - delay(3000); + delay(1000); display.drawImage(Bitmap1360x480_p2, 0, 0, display.epd2.WIDTH, display.epd2.HEIGHT, false, false, true); - delay(3000); + delay(1000); display.drawImage(Bitmap1360x480_p3, 0, 0, display.epd2.WIDTH, display.epd2.HEIGHT, false, false, true); - delay(3000); + delay(1000); display.clearScreen(); int16_t wp = display.epd2.WIDTH / 5; int16_t hp = display.epd2.HEIGHT / 5; @@ -1499,7 +1499,7 @@ void drawBitmaps1360x480() { display.writeImagePart(Bitmap1360x480_1, i * wp, j * hp, 1360, 480, i * wp, j * hp, wp, hp, false, false, true); display.refresh(true); - delay(1000); + delay(500); } } } diff --git a/examples/GxEPD2_Example/GxEPD2_display_selection.h b/examples/GxEPD2_Example/GxEPD2_display_selection.h index ad80d08..6882d86 100644 --- a/examples/GxEPD2_Example/GxEPD2_display_selection.h +++ b/examples/GxEPD2_Example/GxEPD2_display_selection.h @@ -65,6 +65,7 @@ //GxEPD2_BW < GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT / 2 > display(GxEPD2_750_T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW < GxEPD2_750_GDEY075T7, GxEPD2_750_GDEY075T7::HEIGHT / 2 > display(GxEPD2_750_GDEY075T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, GxEPD2_1020_GDEM102T91::HEIGHT / 2> display(GxEPD2_1020_GDEM102T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4, /*CS2=*/ 3)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -91,6 +92,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // Waveshare 3.00" 4-color @@ -183,6 +185,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // Waveshare 3.00" 4-color @@ -245,6 +248,8 @@ //GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4, /*CS2=*/ 2)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display ESP32 Development board wiring, CS2 connected to GPIO4 +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers //GxEPD2_3C display(GxEPD2_154c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW0154Z04 200x200, IL0376F, no longer available //GxEPD2_3C display(GxEPD2_154_Z90c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH0154Z90 200x200, SSD1681 @@ -267,6 +272,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -372,6 +378,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // Waveshare 3.00" 4-color @@ -385,7 +392,7 @@ // can't use package "STMF1 Boards (STM32Duino.com)" (Roger Clark) anymore with Adafruit_GFX, use "STM32 Boards (selected from submenu)" (STMicroelectronics) #if defined(ARDUINO_ARCH_STM32) -#define Serial Serial1 // for my proto board +//#define Serial Serial1 // for my proto board #define MAX_DISPLAY_BUFFER_SIZE 16384ul // ~16k is a good compromise #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) // select one and adapt to your mapping @@ -438,6 +445,9 @@ //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display DESPI-M02L Development board wiring, CS2 connected to GPIOD12 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers #define MAX_HEIGHT_3C(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) //GxEPD2_3C display(GxEPD2_154c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEW0154Z04 200x200, IL0376F, no longer available @@ -461,6 +471,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // Waveshare 3.00" 4-color @@ -531,6 +542,7 @@ //GxEPD2_BW display(GxEPD2_750_T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_GDEY075T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7, /*CS2=*/ 6)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -556,6 +568,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -642,6 +655,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_Example/GxEPD2_display_selection_added.h b/examples/GxEPD2_Example/GxEPD2_display_selection_added.h index 0d6eaec..9b1211f 100644 --- a/examples/GxEPD2_Example/GxEPD2_display_selection_added.h +++ b/examples/GxEPD2_Example/GxEPD2_display_selection_added.h @@ -94,6 +94,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -197,6 +198,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // Waveshare 3.00" 4-color @@ -295,6 +297,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // Waveshare 3.00" 4-color @@ -388,6 +391,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -484,6 +488,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // Waveshare 3.00" 4-color @@ -570,6 +575,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_Example/GxEPD2_display_selection_new_style.h index a9a05e2..8086a5d 100644 --- a/examples/GxEPD2_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -173,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -202,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_Example/GxEPD2_selection_check.h b/examples/GxEPD2_Example/GxEPD2_selection_check.h index fbf152a..3af3381 100644 --- a/examples/GxEPD2_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true diff --git a/examples/GxEPD2_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection.h b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection.h index 31f792b..6882d86 100644 --- a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection.h +++ b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection.h @@ -65,6 +65,7 @@ //GxEPD2_BW < GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT / 2 > display(GxEPD2_750_T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW < GxEPD2_750_GDEY075T7, GxEPD2_750_GDEY075T7::HEIGHT / 2 > display(GxEPD2_750_GDEY075T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, GxEPD2_1020_GDEM102T91::HEIGHT / 2> display(GxEPD2_1020_GDEM102T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4, /*CS2=*/ 3)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -91,6 +92,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // Waveshare 3.00" 4-color @@ -183,6 +185,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // Waveshare 3.00" 4-color @@ -242,8 +245,11 @@ //GxEPD2_BW display(GxEPD2_750_T7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_GDEY075T7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, GxEPD2_1020_GDEM102T91::HEIGHT / 2> display(GxEPD2_1020_GDEM102T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4, /*CS2=*/ 2)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display ESP32 Development board wiring, CS2 connected to GPIO4 +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers //GxEPD2_3C display(GxEPD2_154c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW0154Z04 200x200, IL0376F, no longer available //GxEPD2_3C display(GxEPD2_154_Z90c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH0154Z90 200x200, SSD1681 @@ -266,6 +272,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -371,6 +378,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // Waveshare 3.00" 4-color @@ -384,7 +392,7 @@ // can't use package "STMF1 Boards (STM32Duino.com)" (Roger Clark) anymore with Adafruit_GFX, use "STM32 Boards (selected from submenu)" (STMicroelectronics) #if defined(ARDUINO_ARCH_STM32) -#define Serial Serial1 // for my proto board +//#define Serial Serial1 // for my proto board #define MAX_DISPLAY_BUFFER_SIZE 16384ul // ~16k is a good compromise #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) // select one and adapt to your mapping @@ -437,6 +445,9 @@ //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display DESPI-M02L Development board wiring, CS2 connected to GPIOD12 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers #define MAX_HEIGHT_3C(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) //GxEPD2_3C display(GxEPD2_154c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEW0154Z04 200x200, IL0376F, no longer available @@ -460,6 +471,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // Waveshare 3.00" 4-color @@ -530,6 +542,7 @@ //GxEPD2_BW display(GxEPD2_750_T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_GDEY075T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7, /*CS2=*/ 6)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -555,6 +568,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -641,6 +655,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_added.h b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_added.h index 0d6eaec..9b1211f 100644 --- a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_added.h +++ b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_added.h @@ -94,6 +94,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -197,6 +198,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // Waveshare 3.00" 4-color @@ -295,6 +297,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // Waveshare 3.00" 4-color @@ -388,6 +391,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -484,6 +488,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // Waveshare 3.00" 4-color @@ -570,6 +575,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_GFX_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_GFX_Example/GxEPD2_selection_check.h b/examples/GxEPD2_GFX_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_GFX_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_GFX_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_GFX_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_GFX_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_GFX_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_GFX_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection.h b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection.h index 31f792b..6882d86 100644 --- a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection.h +++ b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection.h @@ -65,6 +65,7 @@ //GxEPD2_BW < GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT / 2 > display(GxEPD2_750_T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW < GxEPD2_750_GDEY075T7, GxEPD2_750_GDEY075T7::HEIGHT / 2 > display(GxEPD2_750_GDEY075T7(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, GxEPD2_1020_GDEM102T91::HEIGHT / 2> display(GxEPD2_1020_GDEM102T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4, /*CS2=*/ 3)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -91,6 +92,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // Waveshare 3.00" 4-color @@ -183,6 +185,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5)); // Waveshare 3.00" 4-color @@ -242,8 +245,11 @@ //GxEPD2_BW display(GxEPD2_750_T7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_GDEY075T7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, GxEPD2_1020_GDEM102T91::HEIGHT / 2> display(GxEPD2_1020_GDEM102T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4, /*CS2=*/ 2)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, GxEPD2_1330_GDEM133T91::HEIGHT / 2> display(GxEPD2_1330_GDEM133T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display ESP32 Development board wiring, CS2 connected to GPIO4 +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers //GxEPD2_3C display(GxEPD2_154c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW0154Z04 200x200, IL0376F, no longer available //GxEPD2_3C display(GxEPD2_154_Z90c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH0154Z90 200x200, SSD1681 @@ -266,6 +272,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -371,6 +378,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // Waveshare 3.00" 4-color @@ -384,7 +392,7 @@ // can't use package "STMF1 Boards (STM32Duino.com)" (Roger Clark) anymore with Adafruit_GFX, use "STM32 Boards (selected from submenu)" (STMicroelectronics) #if defined(ARDUINO_ARCH_STM32) -#define Serial Serial1 // for my proto board +//#define Serial Serial1 // for my proto board #define MAX_DISPLAY_BUFFER_SIZE 16384ul // ~16k is a good compromise #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8)) // select one and adapt to your mapping @@ -437,6 +445,9 @@ //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) +// next line is for Good Display DESPI-M02L Development board wiring, CS2 connected to GPIOD12 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) // 3-color e-papers #define MAX_HEIGHT_3C(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8)) //GxEPD2_3C display(GxEPD2_154c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEW0154Z04 200x200, IL0376F, no longer available @@ -460,6 +471,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=PA4*/ SS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // Waveshare 3.00" 4-color @@ -530,6 +542,7 @@ //GxEPD2_BW display(GxEPD2_750_T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_GDEY075T7(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY075T7 800x480, UC8179 (GD7965) //GxEPD2_BW < GxEPD2_1020_GDEM102T91, MAX_HEIGHT(GxEPD2_1020_GDEM102T91)> display(GxEPD2_1020_GDEM102T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//GxEPD2_BW < GxEPD2_1085_GDEM1085T51, MAX_HEIGHT(GxEPD2_1085_GDEM1085T51)> display(GxEPD2_1085_GDEM1085T51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7, /*CS2=*/ 6)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) //GxEPD2_BW < GxEPD2_1160_T91, MAX_HEIGHT(GxEPD2_1160_T91)> display(GxEPD2_1160_T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEH116T91 960x640, SSD1677 //GxEPD2_BW < GxEPD2_1330_GDEM133T91, MAX_HEIGHT(GxEPD2_1330_GDEM133T91)> display(GxEPD2_1330_GDEM133T91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) // 3-color e-papers @@ -555,6 +568,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -641,6 +655,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 9, /*RST=*/ 8, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_added.h b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_added.h index 0d6eaec..9b1211f 100644 --- a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_added.h +++ b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_added.h @@ -94,6 +94,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color @@ -197,6 +198,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5)); // Waveshare 3.00" 4-color @@ -295,6 +297,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // Waveshare 3.00" 4-color @@ -388,6 +391,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=5*/ 5, /*DC=*/ 2, /*RST=*/ 0, /*BUSY=*/ 4)); // Waveshare 3.00" 4-color @@ -484,6 +488,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=15*/ SS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16)); // Waveshare 3.00" 4-color @@ -570,6 +575,7 @@ //GxEPD2_3C display(GxEPD2_1160c_GDEY116Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY116Z91 960x640, SSD1677 //GxEPD2_3C display(GxEPD2_1330c_GDEM133Z91(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEM133Z91 960x680, SSD1677 // 4-color e-paper +//GxEPD2_4C display(GxEPD2_213c_GDEY0213F51(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //GxEPD2_4C display(GxEPD2_266c_GDEY0266F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //GxEPD2_4C display(GxEPD2_290c_GDEY029F51H(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //GxEPD2_4C display(GxEPD2_300c(/*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7)); // Waveshare 3.00" 4-color diff --git a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_HelloWorld/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_HelloWorld/GxEPD2_selection_check.h b/examples/GxEPD2_HelloWorld/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_HelloWorld/GxEPD2_selection_check.h +++ b/examples/GxEPD2_HelloWorld/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_HelloWorld/GxEPD2_wiring_examples.h b/examples/GxEPD2_HelloWorld/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_HelloWorld/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_HelloWorld/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_NotPagedExample/GxEPD2_NotPagedExample.ino b/examples/GxEPD2_NotPagedExample/GxEPD2_NotPagedExample.ino index 23a1adc..b8f7f31 100644 --- a/examples/GxEPD2_NotPagedExample/GxEPD2_NotPagedExample.ino +++ b/examples/GxEPD2_NotPagedExample/GxEPD2_NotPagedExample.ino @@ -221,6 +221,7 @@ //GxEPD2_BW display(GxEPD2_750(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW075T8 640x384, UC8159c (IL0371) //GxEPD2_BW display(GxEPD2_750_T7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW075T7 800x480, EK79655 (GD7965) //GxEPD2_BW display(GxEPD2_750_YT7(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEY075T7 800x480, UC8179 (GD7965) +////GxEPD2_BW < GxEPD2_1085_GDEM1085T51, GxEPD2_1085_GDEM1085T51::HEIGHT / 2> display(GxEPD2_1085_GDEM1085T51(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4, /*CS2=*/ 2)); // GDEM1085T51 1360x480, JD79686AB, (FPC8617) ////GxEPD2_BW < GxEPD2_1160_T91, GxEPD2_1160_T91::HEIGHT / 2> display(GxEPD2_1160_T91(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEH116T91 960x640, SSD1677 // 3-color e-papers //GxEPD2_3C display(GxEPD2_154c(/*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // GDEW0154Z04 200x200, IL0376F, no longer available diff --git a/examples/GxEPD2_NotPagedExample/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_NotPagedExample/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_NotPagedExample/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_NotPagedExample/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_NotPagedExample/GxEPD2_selection_check.h b/examples/GxEPD2_NotPagedExample/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_NotPagedExample/GxEPD2_selection_check.h +++ b/examples/GxEPD2_NotPagedExample/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_NotPagedExample/GxEPD2_wiring_examples.h b/examples/GxEPD2_NotPagedExample/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_NotPagedExample/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_NotPagedExample/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_selection_check.h b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_selection_check.h +++ b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_wiring_examples.h b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_PagedDisplayUsingCallback/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_selection_check.h b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_selection_check.h +++ b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_wiring_examples.h b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_RotaryUsingBusyCallback/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_SD_AVR_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_SD_AVR_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_SD_AVR_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_SD_AVR_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_SD_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_SD_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_SD_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_SD_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_SD_Example/GxEPD2_selection_check.h b/examples/GxEPD2_SD_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_SD_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_SD_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_SD_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_SD_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_SD_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_SD_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_SerialFlash_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_SerialFlash_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_SerialFlash_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_SerialFlash_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_SerialFlash_Example/GxEPD2_selection_check.h b/examples/GxEPD2_SerialFlash_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_SerialFlash_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_SerialFlash_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_SerialFlash_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_SerialFlash_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_SerialFlash_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_SerialFlash_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_Spiffs_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_Spiffs_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_Spiffs_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_Spiffs_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_Spiffs_Example/GxEPD2_selection_check.h b/examples/GxEPD2_Spiffs_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_Spiffs_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_Spiffs_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_Spiffs_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_Spiffs_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_Spiffs_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_Spiffs_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_selection_check.h b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_U8G2_Fonts_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_WiFi_CertStore_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_WiFi_CertStore_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_WiFi_CertStore_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_WiFi_CertStore_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/examples/GxEPD2_WiFi_Example/GxEPD2_display_selection_new_style.h b/examples/GxEPD2_WiFi_Example/GxEPD2_display_selection_new_style.h index 8657f03..8086a5d 100644 --- a/examples/GxEPD2_WiFi_Example/GxEPD2_display_selection_new_style.h +++ b/examples/GxEPD2_WiFi_Example/GxEPD2_display_selection_new_style.h @@ -72,6 +72,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_750_T7 // GDEW075T7 800x480, EK79655 (GD7965), (WFT0583CZ61) //#define GxEPD2_DRIVER_CLASS GxEPD2_750_GDEY075T7 // GDEY075T7 800x480, UC8179 (GD7965), (FPC-C001 20.08.20) //#define GxEPD2_DRIVER_CLASS GxEPD2_1020_GDEM102T91 // GDEM102T91 960x640, SSD1677, (FPC7705 REV.b) +//#define GxEPD2_DRIVER_CLASS GxEPD2_1085_GDEM1085T51 // GDEM1085T51 1360x480, JD79686AB, (FPC8617) *** needs CS2 *** //#define GxEPD2_DRIVER_CLASS GxEPD2_1160_T91 // GDEH116T91 960x640, SSD1677, (none or hidden) //#define GxEPD2_DRIVER_CLASS GxEPD2_1248 // GDEW1248T3 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330_GDEM133T91 // GDEM133T91 960x680, SSD1677, (FPC-7701 REV.B) @@ -98,6 +99,7 @@ //#define GxEPD2_DRIVER_CLASS GxEPD2_1248c // GDEY1248Z51 1304x984, UC8179, (WFT1248BZ23,WFT1248BZ24) //#define GxEPD2_DRIVER_CLASS GxEPD2_1330c_GDEM133Z91 // GDEM133Z91 960x680, SSD1677 (FPC-7701 REV.B) // 4-color e-paper +//#define GxEPD2_DRIVER_CLASS GxEPD2_213c_GDEY0213F51 // GDEY0213F51 122x250, JD79661 (FPC-A002 20.04.08) //#define GxEPD2_DRIVER_CLASS GxEPD2_266c_GDEY0266F51H // GDEY0266F51H 184x360, JD79667 (FPC-H006 22.04.02) //#define GxEPD2_DRIVER_CLASS GxEPD2_290c_GDEY029F51H // GDEY029F51H 168x384, JD79667 (FPC-H004 22.03.24) //#define GxEPD2_DRIVER_CLASS GxEPD2_300c // Waveshare 3.00" 4-color @@ -172,6 +174,8 @@ GxEPD2_DISPLAY_CLASS displ #elif defined(ARDUINO_LOLIN_S2_MINI) GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection #else +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13)); // Good Display ESP32 Development Kit ESP32-L +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ 27, /*DC=*/ 14, /*RST=*/ 12, /*BUSY=*/ 13, /*CS2=*/ 4)); // for GDEM1085T51 with ESP32-L GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // my suggested wiring and proto board //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ 5, /*DC=*/ 17, /*RST=*/ 16, /*BUSY=*/ 4)); // LILYGO_T5_V2.4.1 //GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 19, /*RST=*/ 4, /*BUSY=*/ 34)); // LILYGO® TTGO T5 2.66 @@ -201,7 +205,11 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di #define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2)) #endif // adapt the constructor parameters to your wiring -GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); +// for Good Display STM32 Development Kit DESPI-L. +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13)); +//GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51 +GxEPD2_DISPLAY_CLASS display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board #undef MAX_DISPLAY_BUFFER_SIZE #undef MAX_HEIGHT #endif diff --git a/examples/GxEPD2_WiFi_Example/GxEPD2_selection_check.h b/examples/GxEPD2_WiFi_Example/GxEPD2_selection_check.h index bb22164..3af3381 100644 --- a/examples/GxEPD2_WiFi_Example/GxEPD2_selection_check.h +++ b/examples/GxEPD2_WiFi_Example/GxEPD2_selection_check.h @@ -63,6 +63,7 @@ #define GxEPD2_750_T7_IS_BW true #define GxEPD2_750_GDEY075T7_IS_BW true #define GxEPD2_1020_GDEM102T91_IS_BW true +#define GxEPD2_1085_GDEM1085T51_IS_BW true #define GxEPD2_1160_T91_IS_BW true #define GxEPD2_1248_IS_BW true #define GxEPD2_1330_GDEM133T91_IS_BW true @@ -93,6 +94,7 @@ #define GxEPD2_1248c_IS_3C true #define GxEPD2_1330c_GDEM133Z91_IS_3C true // 4-color e-paper +#define GxEPD2_213c_GDEY0213F51_IS_4C true #define GxEPD2_266c_GDEY0266F51H_IS_4C true #define GxEPD2_290c_GDEY029F51H_IS_4C true #define GxEPD2_300c_IS_4C true @@ -112,15 +114,30 @@ #if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_BW used with 3-color driver class" #endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 4-color driver class" +#endif +#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_BW used with 7-color driver class" +#endif #if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_3C used with b/w driver class" #endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_4C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 4-color driver class"" +#endif +#if IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_3C used with 7-color driver class"" +#endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_BW(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with b/w driver class" #endif #if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_3C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_4C used with 3-color driver class" #endif +#if IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS) && IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) +#error "GxEPD2_4C used with 7-color driver class" +#endif #if IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS) && !IS_GxEPD2_DRIVER_7C(GxEPD2_DRIVER_CLASS) #error "GxEPD2_7C used with less colors driver class" #endif diff --git a/examples/GxEPD2_WiFi_Example/GxEPD2_wiring_examples.h b/examples/GxEPD2_WiFi_Example/GxEPD2_wiring_examples.h index ef5dc8e..7b077d5 100644 --- a/examples/GxEPD2_WiFi_Example/GxEPD2_wiring_examples.h +++ b/examples/GxEPD2_WiFi_Example/GxEPD2_wiring_examples.h @@ -15,6 +15,20 @@ // // Add new topics in https://forum.arduino.cc/c/using-arduino/displays/23 for new questions and issues +// mapping of Good Display Arduino UNO Development Kit DEArduino-L, e.g. to DESPI-C02 +// BUSY -> 4, RES -> 5, D/C -> 6, CS-> 7, SCK -> 13, SDI -> 11 + +// mapping of Good Display ESP8266 Development Kit ESP8266-L, e.g. to DESPI-C02 +// BUSY -> GPIO16, RES -> GPIO5, D/C -> GPIO4, CS-> GPIO2, SCK -> GPIO14, SDI -> GPIO13 + +// mapping of Good Display ESP32 Development Kit ESP32-L, e.g. to DESPI-C02 +// BUSY -> GPIO13, RES -> GPIO12, D/C -> GPIO14, CS-> GPIO27, SCK -> GPIO18, SDI -> GPIO23 + +// mapping of Good Display STM32 Development Kit DESPI-L, e.g. to DESPI-C02 +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PD9, SDI -> PD10 +// needs jumpers from PA5 (PIN_SPI_SCK) to SCK for EPD and PA7 (PIN_SPI_MOSI) to SDI for EPD. PD9 and PD10 are not HW SPI capable. +// BUSY -> PE13, RES -> PE14, D/C -> PE14, CS-> PD8, SCK -> PA5, SDI -> PA7 // for HW SPI with GxEPD2 + // connection suggestions concerning Waveshare e-paper HAT Rev 2.3: // DON'T FORGET to connect the PWR pin to VCC, to enable power to the board. // RST is no longer used to disable power to the board, as with earlier revisions. diff --git a/src/gdem/GxEPD2_1085_GDEM1085T51.cpp b/src/gdem/GxEPD2_1085_GDEM1085T51.cpp index 78e386f..322448e 100644 --- a/src/gdem/GxEPD2_1085_GDEM1085T51.cpp +++ b/src/gdem/GxEPD2_1085_GDEM1085T51.cpp @@ -87,12 +87,12 @@ void GxEPD2_1085_GDEM1085T51::writeImage(const uint8_t bitmap[], int16_t x, int1 _writeImage(0x13, bitmap, x, y, w, h, invert, mirror_y, pgm); // set current } -void GxEPD2_1085_GDEM1085T51::writeImageForFullRefresh(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert, bool mirror_y, bool pgm) -{ - //Serial.print("writeImageForFullRefresh("); Serial.print(x); Serial.print(", "); Serial.print(y); Serial.print(", "); Serial.print(w); Serial.print(", "); Serial.print(h); Serial.println(")"); - _writeImage(0x10, bitmap, x, y, w, h, invert, mirror_y, pgm); // set previous - _writeImage(0x13, bitmap, x, y, w, h, invert, mirror_y, pgm); // set current -} +//void GxEPD2_1085_GDEM1085T51::writeImageForFullRefresh(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert, bool mirror_y, bool pgm) +//{ +// //Serial.print("writeImageForFullRefresh("); Serial.print(x); Serial.print(", "); Serial.print(y); Serial.print(", "); Serial.print(w); Serial.print(", "); Serial.print(h); Serial.println(")"); +// _writeImage(0x10, bitmap, x, y, w, h, invert, mirror_y, pgm); // set previous +// _writeImage(0x13, bitmap, x, y, w, h, invert, mirror_y, pgm); // set current +//} void GxEPD2_1085_GDEM1085T51::writeImageAgain(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert, bool mirror_y, bool pgm) { @@ -587,9 +587,10 @@ void GxEPD2_1085_GDEM1085T51::_InitDisplay() _writeDataToSlave(0xA0); _writeCommandToBoth(0xE0); // Cascade Setting (CCSET) _writeDataToBoth(0x01); // CCEN (clock for slave) + // _writeCommandToBoth(0x00); // Panel setting _writeDataToBoth(0x9F); // otp - _writeDataToBoth(0x0D); // ?? + _writeDataToBoth(0x0D); // TS_AUTO, TIEG, no NORG, VC_LUTZ _writeCommandToBoth(0x06); // Booster Setting _writeDataToBoth(0x57); // 20ms, str 3, period 8 _writeDataToBoth(0x24); // 10ms, str 5, period 5 @@ -597,6 +598,10 @@ void GxEPD2_1085_GDEM1085T51::_InitDisplay() _writeDataToBoth(0x32); // ?? _writeDataToBoth(0x08); // ?? _writeDataToBoth(0x48); // ?? + _writeCommandToBoth(0x50); // VCOM and DATA interval setting + _writeDataToBoth(0x97); // LUTBW, 10 hsync + _writeCommandToBoth(0x60); // TCON setting + _writeDataToBoth(0x31); // ?? _writeCommandToBoth(0x61); // Resolution setting _writeDataToBoth(0X02); // 640 _writeDataToBoth(0XA8); @@ -607,12 +612,8 @@ void GxEPD2_1085_GDEM1085T51::_InitDisplay() _writeDataToBoth(0x00); _writeDataToBoth(0x00); _writeDataToBoth(0x00); - _writeCommandToBoth(0x60); // TCON setting - _writeDataToBoth(0x31); // ?? - _writeCommandToBoth(0x50); // VCOM and DATA interval setting - _writeDataToBoth(0x97); // LUTBW, 10 hsync - _writeCommandToBoth(0xE8); - _writeDataToBoth(0x01); + //_writeCommandToBoth(0xE8); + //_writeDataToBoth(0x01); _init_display_done = true; } @@ -621,8 +622,8 @@ void GxEPD2_1085_GDEM1085T51::_Init_Full() //Serial.println("_Init_Full"); if (_using_partial_mode) _soft_reset(); _InitDisplay(); - //_writeCommandToBoth(0xE8); - //_writeDataToBoth(0x01); + _writeCommandToBoth(0xE8); + _writeDataToBoth(0x01); _PowerOn(); _using_partial_mode = false; } @@ -631,65 +632,13 @@ void GxEPD2_1085_GDEM1085T51::_Init_Part() { //Serial.println("_Init_Part"); if (!_using_partial_mode) _soft_reset(); -#if 0 _InitDisplay(); - //_writeCommandToBoth(0xE8); - //_writeDataToBoth(0x01); - _PowerOn(); - _using_partial_mode = true; -#else - if (_hibernating) _reset(); - _writeCommandToBoth(0x4D); - _writeDataToBoth(0x55); - _writeCommandToBoth(0xA6); - _writeDataToBoth(0x38); - _writeCommandToBoth(0xB4); - _writeDataToBoth(0x5D); - _writeCommandToBoth(0xB6); - _writeDataToBoth(0x80); - _writeCommandToBoth(0xB7); - _writeDataToBoth(0x00); - _writeCommandToBoth(0xF7); - _writeDataToBoth(0x02); - _writeCommandToSlave(0xAE); - _writeDataToSlave(0xA0); - _writeCommandToBoth(0xE0); // Cascade Setting (CCSET) - _writeDataToBoth(0x01); // CCEN (clock for slave) - _writeCommandToBoth(0x00); // Panel setting - _writeDataToBoth(0x9F); // otp - _writeDataToBoth(0x0D); // ?? - _writeCommandToBoth(0x06); // Booster Setting - _writeDataToBoth(0x57); // 20ms, str 3, period 8 - _writeDataToBoth(0x24); // 10ms, str 5, period 5 - _writeDataToBoth(0x28); // 10ms, str 6, period 1 - _writeDataToBoth(0x32); // ?? - _writeDataToBoth(0x08); // ?? - _writeDataToBoth(0x48); // ?? - _writeCommandToBoth(0x61); // Resolution setting - _writeDataToBoth(0X02); // 640 - _writeDataToBoth(0XA8); - _writeDataToBoth(0X01); // 480 - _writeDataToBoth(0XE0); - _writeCommandToBoth(0x62); // Source & gate start setting - _writeDataToBoth(0x00); - _writeDataToBoth(0x00); - _writeDataToBoth(0x00); - _writeDataToBoth(0x00); - _writeCommandToBoth(0x82); // VCOM DC Setting - _writeDataToBoth(0x12); // ?? - _writeCommandToBoth(0x60); // TCON setting - _writeDataToBoth(0x31); // ?? - _writeCommandToBoth(0x50); // VCOM and DATA interval setting - _writeDataToBoth(0x97); - //_writeCommandToBoth(0x50); // VCOM and DATA interval setting - //_writeDataToBoth(0x97); // LUTBW, 10 hsync _writeCommandToBoth(0xE0); // Cascade Setting (CCSET) _writeDataToBoth(0x03); // TSFIX, CCEN (clock for slave) _writeCommandToBoth(0xE5); // Force Temperature _writeDataToBoth(0x64); // 100, differential update _PowerOn(); _using_partial_mode = true; -#endif } void GxEPD2_1085_GDEM1085T51::_Update_Full() diff --git a/src/gdem/GxEPD2_1085_GDEM1085T51.h b/src/gdem/GxEPD2_1085_GDEM1085T51.h index ff02ba3..aacba68 100644 --- a/src/gdem/GxEPD2_1085_GDEM1085T51.h +++ b/src/gdem/GxEPD2_1085_GDEM1085T51.h @@ -42,7 +42,7 @@ class GxEPD2_1085_GDEM1085T51 : public GxEPD2_EPD void writeScreenBufferAgain(uint8_t value = 0xFF); // init previous buffer controller memory (default white) // write to controller memory, without screen refresh; x and w should be multiple of 8 void writeImage(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert = false, bool mirror_y = false, bool pgm = false); - void writeImageForFullRefresh(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert = false, bool mirror_y = false, bool pgm = false); + //void writeImageForFullRefresh(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert = false, bool mirror_y = false, bool pgm = false); void writeImagePart(const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap, int16_t x, int16_t y, int16_t w, int16_t h, bool invert = false, bool mirror_y = false, bool pgm = false); void writeImage(const uint8_t* black, const uint8_t* color, int16_t x, int16_t y, int16_t w, int16_t h, bool invert = false, bool mirror_y = false, bool pgm = false);