ESP32-c6-zero ans 2.9inch E-paper interfacing problem [Solved]

Hello,

I bought a WeAct studio 2,9inch black and white e-paper display and want to make it work with my esp32-c6-zero from waveshare

My display is now cabled this way:
Vcc: 5v
Gnd : Gnd
SDA : 22
SCL : 21
CS : 5
D/C : 0
RES : 2
Busy : 15

This is the code i'm running, i tried to include SPI.begin() to set custom pins because i haven't seen anybody use this display with this board.


// base class GxEPD2_GFX can be used to pass references or pointers to the display instance as parameter, uses ~1.2k more code
// enable or disable GxEPD2_GFX base class
#define ENABLE_GxEPD2_GFX 0

#include <SPI.h>
#include <GxEPD2_BW.h>
#include <Fonts/FreeMonoBold9pt7b.h>

// ESP32 CS(SS)=5,SCL(SCK)=18,SDA(MOSI)=23,BUSY=15,RES(RST)=2,DC=0

// 2.9'' EPD Module
GxEPD2_BW<GxEPD2_290_BS, GxEPD2_290_BS::HEIGHT> display(GxEPD2_290_BS(/*CS=5*/ 5, /*DC=*/0, /*RES=*/2, /*BUSY=*/15));  // DEPG0290BS 128x296, SSD1680



void setup() { 
  SPI.begin(0, 22, 21, 5);
  display.init(115200, true, 50, false);
  helloWorld();
  helloFullScreenPartialMode();
  delay(1000);
  if (display.epd2.hasFastPartialUpdate) {
    showPartialUpdate();
    delay(1000);
  }
  display.hibernate();
}

There is more code on the example I'm pulling this code from, i just deleted it for the forum. I used this example

Thanks for the help

Hi @joel_h73

  • Don't use GPIO0 for two purposes, D/C and MISO. Use -1 for MISO, as it is not needed.
  • Don't use 5V for a display board with bidirectional level converter. It would feed 5V to the processor pin used for BUSY.
  • Don't use GPIO0 with a board with bidirectional level converter. It may interfere with boot mode of the processor (strapping pin).

Good Luck!

Thanks silentobserver

It functions well with
Vcc = 3 V
Gnd = Gnd
SCL = 21
SDA = 22
D/C = 1
CS = 5
Busy = 15
RS = 2

#define ENABLE_GxEPD2_GFX 0
#include <SPI.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <Fonts/FreeMonoBold9pt7b.h>



// 2.9'' EPD Module
GxEPD2_BW<GxEPD2_290_BS, GxEPD2_290_BS::HEIGHT> display(GxEPD2_290_BS(/*CS=5*/ 5, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 15)); // DEPG0290BS 128x296, SSD1680

void setup()
{
  SPI.begin(21, -1, 22, 5);  
  display.init(115200,true,50,false);
  helloWorld();
  helloFullScreenPartialMode();
  delay(1000);
  if (display.epd2.hasFastPartialUpdate)
  {
    showPartialUpdate();
    delay(1000);
  }
  display.hibernate();
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.