ePaper Driver Board for Seeed Studio XIAO

  1. The display is the GDEY0154D67 (SKU 104990843)
  2. The XIAO is an ESP32C6 (SKU 113991254)
  3. The V1 board (which works) is called the ePaper Breakout Board (SKU 105990172)
  4. The V2 board (does not work) is called the ePaper Driver Board (SKU 114993558)
  5. 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.
  6. 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:

  1. First of the V1 board + ESP32C6 XIAO + 1.54" Display successfully showing the seeedstudio logo and 1.54" display specs on the screen
  2. 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//////////////////////////////////////////////////
1 Like