|
@@ -147,8 +147,26 @@
|
|
|
|
|
|
|
|
#include "GxEPD2_selection_check.h"
|
|
#include "GxEPD2_selection_check.h"
|
|
|
|
|
|
|
|
-#if defined (ESP8266)
|
|
|
|
|
-#define MAX_DISPLAY_BUFFER_SIZE (81920ul-34000ul-5000ul) // ~34000 base use, change 5000 to your application use
|
|
|
|
|
|
|
+// for my test use only
|
|
|
|
|
+//#if defined(_AVR)
|
|
|
|
|
+//#warning "defined(_AVR)"
|
|
|
|
|
+//#endif
|
|
|
|
|
+//#if defined(ESP32)
|
|
|
|
|
+//#warning "defined(ESP32)"
|
|
|
|
|
+//#endif
|
|
|
|
|
+//#if defined(ARDUINO_ARCH_ESP32)
|
|
|
|
|
+//#warning "defined(ARDUINO_ARCH_ESP32)"
|
|
|
|
|
+//#endif
|
|
|
|
|
+
|
|
|
|
|
+#if defined(ARDUINO_ARCH_AVR)
|
|
|
|
|
+#if defined (ARDUINO_AVR_MEGA2560) // Note: SS is on 53 on MEGA
|
|
|
|
|
+#define MAX_DISPLAY_BUFFER_SIZE 5000 // e.g. full height for 200x200
|
|
|
|
|
+#elif defined(ARDUINO_AVR_NANO_EVERY)
|
|
|
|
|
+#define EPD_CS 10
|
|
|
|
|
+#define MAX_DISPLAY_BUFFER_SIZE 5000 // e.g. full height for 200x200
|
|
|
|
|
+#else // Note: SS is on 10 on UNO, NANO
|
|
|
|
|
+#define MAX_DISPLAY_BUFFER_SIZE 800 //
|
|
|
|
|
+#endif
|
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
@@ -157,16 +175,27 @@
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
|
#endif
|
|
#endif
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
-GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=D8*/ EPD_CS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4));
|
|
|
|
|
-// mapping of Waveshare e-Paper ESP8266 Driver Board, new version
|
|
|
|
|
-//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5));
|
|
|
|
|
-// mapping of Waveshare e-Paper ESP8266 Driver Board, old version
|
|
|
|
|
-//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16));
|
|
|
|
|
-#undef MAX_DISPLAY_BUFFER_SIZE
|
|
|
|
|
-#undef MAX_HEIGHT
|
|
|
|
|
|
|
+GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
+// for Arduino Micro or Arduino Leonardo with CS on 10 on my proto boards (SS would be 17) uncomment instead:
|
|
|
|
|
+//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
+#if defined(ARDUINO_ARCH_MEGAAVR)
|
|
|
|
|
+#if defined(ARDUINO_AVR_NANO_EVERY)
|
|
|
|
|
+#define MAX_DISPLAY_BUFFER_SIZE 5000 // e.g. full height for 200x200
|
|
|
|
|
+#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
|
|
|
+#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
|
|
|
+#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
|
|
|
+#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE / 2) / (EPD::WIDTH / 8))
|
|
|
|
|
+#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS)
|
|
|
|
|
+#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<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
+#endif
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-#if defined(ESP32)
|
|
|
|
|
|
|
+#if defined(ARDUINO_ARCH_ESP32)
|
|
|
#define MAX_DISPLAY_BUFFER_SIZE 65536ul // e.g.
|
|
#define MAX_DISPLAY_BUFFER_SIZE 65536ul // e.g.
|
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
@@ -177,7 +206,9 @@ GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> displ
|
|
|
#endif
|
|
#endif
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
#if !IS_GxEPD2_1248(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_1248c(GxEPD2_DRIVER_CLASS)
|
|
#if !IS_GxEPD2_1248(GxEPD2_DRIVER_CLASS) && !IS_GxEPD2_1248c(GxEPD2_DRIVER_CLASS)
|
|
|
-#if defined(ARDUINO_LOLIN_D32_PRO)
|
|
|
|
|
|
|
+#if defined(ARDUINO_NANO_ESP32) // uses Dx pin names
|
|
|
|
|
+GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ D10, /*DC=*/ D8, /*RST=*/ D9, /*BUSY=*/ D7));
|
|
|
|
|
+#elif defined(ARDUINO_LOLIN_D32_PRO)
|
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // my LOLIN_D32_PRO proto board
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=5*/ EPD_CS, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // my LOLIN_D32_PRO proto board
|
|
|
#elif defined(ARDUINO_LOLIN_S2_MINI)
|
|
#elif defined(ARDUINO_LOLIN_S2_MINI)
|
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS*/ 33, /*DC=*/ 35, /*RST=*/ 37, /*BUSY=*/ 39)); // my LOLIN ESP32 S2 mini connection
|
|
@@ -202,9 +233,8 @@ GxEPD2_DISPLAY_CLASS < GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS) > di
|
|
|
#undef MAX_HEIGHT
|
|
#undef MAX_HEIGHT
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-// 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 MAX_DISPLAY_BUFFER_SIZE 15000ul // ~15k is a good compromise
|
|
|
|
|
|
|
+#if defined (ARDUINO_ARCH_ESP8266)
|
|
|
|
|
+#define MAX_DISPLAY_BUFFER_SIZE (81920ul-34000ul-5000ul) // ~34000 base use, change 5000 to your application use
|
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
@@ -213,21 +243,18 @@ 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))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
|
#endif
|
|
#endif
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
-// 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<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13));
|
|
|
|
|
-//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51
|
|
|
|
|
-GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=PA4*/ EPD_CS, /*DC=*/ PA3, /*RST=*/ PA2, /*BUSY=*/ PA1)); // my proto board
|
|
|
|
|
|
|
+GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=D8*/ EPD_CS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4));
|
|
|
|
|
+// mapping of Waveshare e-Paper ESP8266 Driver Board, new version
|
|
|
|
|
+//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=2*/ 2, /*BUSY=5*/ 5));
|
|
|
|
|
+// mapping of Waveshare e-Paper ESP8266 Driver Board, old version
|
|
|
|
|
+//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=15*/ EPD_CS, /*DC=4*/ 4, /*RST=5*/ 5, /*BUSY=16*/ 16));
|
|
|
#undef MAX_DISPLAY_BUFFER_SIZE
|
|
#undef MAX_DISPLAY_BUFFER_SIZE
|
|
|
#undef MAX_HEIGHT
|
|
#undef MAX_HEIGHT
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-#if defined(__AVR)
|
|
|
|
|
-#if defined (ARDUINO_AVR_MEGA2560) // Note: SS is on 53 on MEGA
|
|
|
|
|
-#define MAX_DISPLAY_BUFFER_SIZE 5000 // e.g. full height for 200x200
|
|
|
|
|
-#else // Note: SS is on 10 on UNO, NANO
|
|
|
|
|
-#define MAX_DISPLAY_BUFFER_SIZE 800 //
|
|
|
|
|
-#endif
|
|
|
|
|
|
|
+// 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 MAX_DISPLAY_BUFFER_SIZE 15000ul // ~15k is a good compromise
|
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPLAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
#elif IS_GxEPD2_3C(GxEPD2_DISPLAY_CLASS) || IS_GxEPD2_4C(GxEPD2_DISPLAY_CLASS)
|
|
@@ -236,11 +263,16 @@ GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> displ
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
|
#endif
|
|
#endif
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
-GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
-// for Arduino Micro or Arduino Leonardo with CS on 10 on my proto boards (SS would be 17) uncomment instead:
|
|
|
|
|
-//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
|
|
+// 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<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13));
|
|
|
|
|
+//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ PD8, /*DC=*/ PE15, /*RST=*/ PE14, /*BUSY=*/ PE13, /*CS2=*/ PD12)); // for GDEM1085T51
|
|
|
|
|
+GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_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
|
|
#endif
|
|
|
|
|
|
|
|
|
|
+#if defined(ARDUINO_ARCH_RENESAS)
|
|
|
#if defined(ARDUINO_UNOR4_MINIMA) || defined(ARDUINO_UNOR4_WIFI)
|
|
#if defined(ARDUINO_UNOR4_MINIMA) || defined(ARDUINO_UNOR4_WIFI)
|
|
|
#define MAX_DISPLAY_BUFFER_SIZE 16384ul // e.g. half of available RAM
|
|
#define MAX_DISPLAY_BUFFER_SIZE 16384ul // e.g. half of available RAM
|
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
#if IS_GxEPD2_BW(GxEPD2_DISPLAY_CLASS)
|
|
@@ -253,6 +285,7 @@ GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> displ
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
#endif
|
|
#endif
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
#if defined(ARDUINO_ARCH_SAM)
|
|
#if defined(ARDUINO_ARCH_SAM)
|
|
|
#define MAX_DISPLAY_BUFFER_SIZE 32768ul // e.g., up to 96k
|
|
#define MAX_DISPLAY_BUFFER_SIZE 32768ul // e.g., up to 96k
|
|
@@ -278,10 +311,14 @@ GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> displ
|
|
|
#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS)
|
|
#elif IS_GxEPD2_7C(GxEPD2_DISPLAY_CLASS)
|
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2) ? EPD::HEIGHT : (MAX_DISPLAY_BUFFER_SIZE) / (EPD::WIDTH / 2))
|
|
|
#endif
|
|
#endif
|
|
|
|
|
+#if defined(ARDUINO_SAMD_NANO_33_IOT)
|
|
|
|
|
+GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=10*/ EPD_CS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
|
|
|
|
+#else
|
|
|
// adapt the constructor parameters to your wiring
|
|
// adapt the constructor parameters to your wiring
|
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5));
|
|
GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/ 7, /*RST=*/ 6, /*BUSY=*/ 5));
|
|
|
//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 1)); // my Seed XIOA0
|
|
//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 4, /*DC=*/ 3, /*RST=*/ 2, /*BUSY=*/ 1)); // my Seed XIOA0
|
|
|
//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 3, /*DC=*/ 2, /*RST=*/ 1, /*BUSY=*/ 0)); // my other Seed XIOA0
|
|
//GxEPD2_DISPLAY_CLASS<GxEPD2_DRIVER_CLASS, MAX_HEIGHT(GxEPD2_DRIVER_CLASS)> display(GxEPD2_DRIVER_CLASS(/*CS=4*/ 3, /*DC=*/ 2, /*RST=*/ 1, /*BUSY=*/ 0)); // my other Seed XIOA0
|
|
|
|
|
+#endif
|
|
|
#undef MAX_DISPLAY_BUFFER_SIZE
|
|
#undef MAX_DISPLAY_BUFFER_SIZE
|
|
|
#undef MAX_HEIGHT
|
|
#undef MAX_HEIGHT
|
|
|
#endif
|
|
#endif
|