- The display is the
GDEY0154D67
(SKU 104990843) - The XIAO is an
ESP32C6
(SKU 113991254) - The V1 board (which works) is called the
ePaper Breakout Board
(SKU 105990172) - The V2 board (does not work) is called the
ePaper Driver Board
(SKU 114993558) - The code is unmodified from the example posted on the Wiki authored by Allen Kuang at GitHub under path
e-ink_Demo / 1.54-inch E-paper - dotmatix 200x200 / example
. The same example is linked for both variants of the board. - The Arduino version is 2.3.4 with CLI Version: 1.1.1
I am not allowed to post links or photos, it seems. But if someone can show me how to, I can upload two photos:
- First of the V1 board + ESP32C6 XIAO + 1.54" Display successfully showing the seeedstudio logo and 1.54" display specs on the screen
- Second of the XIAO and 1.54" Display transferred to the V2 board, but showing garbled pixels.
The unmodified code is as below:
#include <SPI.h>
//EPD
#include "Display_EPD_W21_spi.h"
#include "Display_EPD_W21.h"
#include "demo.h"
void setup() {
pinMode(D5, INPUT); //BUSY
pinMode(D0, OUTPUT); //RES
pinMode(D3, OUTPUT); //DC
pinMode(D1, OUTPUT); //CS
//SPI
SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE0));
SPI.begin ();
}
//Tips//
/*
1.Flickering is normal when EPD is performing a full screen update to clear ghosting from the previous image so to ensure better clarity and legibility for the new image.
2.There will be no flicker when EPD performs a partial refresh.
3.Please make sue that EPD enters sleep mode when refresh is completed and always leave the sleep mode command. Otherwise, this may result in a reduced lifespan of EPD.
4.Please refrain from inserting EPD to the FPC socket or unplugging it when the MCU is being powered to prevent potential damage.)
5.Re-initialization is required for every full screen update.
7.When porting the program, set the BUSY pin to input mode and other pins to output mode.
*/
void loop() {
EPD_HW_Init(); //Full screen refresh initialization.
EPD_WhiteScreen_White(); //Clear screen function.
EPD_DeepSleep(); //Enter the sleep mode and please do not delete it, otherwise it will reduce the lifespan of the screen.
delay(2000); //Delay for 2s.
/************Full display(2s)*******************/
EPD_HW_Init(); //Full screen refresh initialization.
EPD_WhiteScreen_ALL(gImage_1); //To Display one image using full screen refresh.
EPD_DeepSleep(); //Enter the sleep mode and please do not delete it, otherwise it will reduce the lifespan of the screen.
delay(2000); //Delay for 2s.
delay(300000); // The program stops here
}
//////////////////////////////////END//////////////////////////////////////////////////