Problems with waveshare display and ESP32 feather Huzzah

Hi,

I’m using the epd waveshare hat display and the ESP32 feather board Huzzah to showcase different text on the display. I’m writing the code in Arduino IDE, and the code compiles and downloads, but nothing happens on the screen. I have tried everything and looked at different forums for answers. I’m new to all of this, so I hope you guys can help me. I have added the code + setup.

#include <GxEPD2_BW.h>
#include <Fonts/FreeMono12pt7b.h>

// Connections for Adafruit ESP32 Feather
static const uint8_t EPD_BUSY = 32; // Ada 32 to EPD BUSY
static const uint8_t EPD_CS = 15; // Ada 15 to EPD CS
static const uint8_t EPD_RST = 27; // Ada 27 to EPD RST
static const uint8_t EPD_DC = 33; // Ada 33 to EPD DC
static const uint8_t EPD_SCK = 5; // Ada 5 to EPD CLK
static const uint8_t EPD_MISO = 19; // Master-In Slave-Out not used, as no data from display
static const uint8_t EPD_MOSI = 18; // Ada 18 to EPD DIN

//Include the appropriate line from the ‘GxEPD2_Example’ code for your particular display.
//This works for the 2.9 inch black and white display. Add pin numbers.
GxEPD2_BW<GxEPD2_213_flex, GxEPD2_213_flex::HEIGHT> display(GxEPD2_213_flex(/CS=5/SS, /DC=/ 33, /RST=/ 27, /BUSY=/ 32));

void setup() {

// Initialize display and set font
display.init();
display.setRotation(3); // landscape orientaion
display.setFullWindow();
display.setFont(&FreeMono12pt7b);
display.setTextColor(GxEPD_BLACK, GxEPD_WHITE);

// Write something to display buffer
display.fillScreen(GxEPD_WHITE);
display.setCursor(2, 20);
display.print(“Hello World!”);

// Update display
display.display();
}

void loop() {
// These aren’t the droids you’re looking for.
}

IMG_2799|375x500

Kind regards,
Naja

@najaals, Hi Naja,

welcome to the forum! I see this is your second post. So I hope you have already read:

It is a good idea to create a new topic instead of adding to a topic that has been quiet for some time. And to address all readers instead of a poster that may have been absent since then.

But you should add a link to your previous post, especially if it contains additional information:

Please always add links to the devices in question; the display board or panel and the connection board, and the processor board.

Your connection board may contain level converters and the “clever” reset circuit.
Please read the README.md of the library, it has remarks for this.

Please provide diagnostic output from Serial Monitor, so we can see if you have a boot mode issue, or if your SPI communication doesn’t work. For this you need to use init with a bitrate, e.g. init(115200), to enable diagnostic output.

Make sure your wiring corresponds to the constructor parameters and to the HW SPI pins of the processor board; your comments correspond to the feather huzzah.

And make sure you did wire at all, not like on your picture! Don’t forget VCC and GND.

Jean-Marc

Hi ZinggJM,

Thank you for your response. I will add all the things you mentioned. I’m new to all of this, so please correct me, if I’m missing something.

I’m using the following devices:

[Feather board]
https://www.digitalimpuls.no/diverse/141838/adafruit-huzzah32-esp32-feather-board-made-with-the-official-wroom32-module

[E-paper]

[Picture of the serial monitor after pushing the reset button on feather board]

I have wired in the following way:

Waveshare EPD (Busy) = 32 on ESP32
Waveshare EPD (RST) = 27 on ESP32
Waveshare EPD (DC) = 33 on ESP32
Waveshare EPD (CS) = 15 on ESP32
Waveshare EPD (CLK) = SCK on ESP32
Waveshare EPD (DIN) = MOSI on ESP32
Waveshare EPD (GND) = GND on ESP32
Waveshare EPD (VCC) = 3V on ESP32

[Code example]

#include <GxEPD2_BW.h>
#include <Fonts/FreeMono12pt7b.h>

// Connections for Adafruit ESP32 Feather
static const uint8_t EPD_BUSY = 32; // Ada 32 to EPD BUSY
static const uint8_t EPD_CS = 15; // Ada 15 to EPD CS
static const uint8_t EPD_RST = 27; // Ada 27 to EPD RST
static const uint8_t EPD_DC = 33; // Ada 33 to EPD DC
static const uint8_t EPD_SCK = 5; // Ada 5 to EPD CLK
static const uint8_t EPD_MISO = 19; // Master-In Slave-Out not used, as no data from display
static const uint8_t EPD_MOSI = 18; // Ada 18 to EPD DIN

//Include the appropriate line from the ‘GxEPD2_Example’ code for your particular display.
//This works for the 2.9 inch black and white display. Add pin numbers.
GxEPD2_BW<GxEPD2_213_flex, GxEPD2_213_flex::HEIGHT> display(GxEPD2_213_flex(/CS=5/SS, /DC=/ 33, /RST=/ 27, /BUSY=/ 32));

void setup() {

// Initialize display and set font
display.init(115200);
display.setRotation(3); // landscape orientaion
display.setFullWindow();
display.setFont(&FreeMono12pt7b);
display.setTextColor(GxEPD_BLACK, GxEPD_WHITE);

// Write something to display buffer
display.fillScreen(GxEPD_WHITE);
display.setCursor(2, 20);
display.print(“Hello World!”);

// Update display
display.display();
}

void loop() {
// These aren’t the droids you’re looking for.
}

As I mentioned before, the code compiles and connects to the board. I got a response from the display, and it’s switching between black and white, but not showing any text… Maybe the display doesn’t work optimally. I have selected the correct board in Arduino IDE, and downloaded all the libraries needed for ESP32 and e-paper displays. I hope there is something I can do to fix this! :slight_smile:

Kind regards,
Naja

static const uint8_t EPD_BUSY = 32; // Ada 32 to EPD BUSY
static const uint8_t EPD_DC = 33; // Ada 33 to EPD DC

You cannot use portB GPIO pins as outputs. GPIO_NUM_0-33 is on portA. Use only portA, untill you’ve got a lot more experience, for inputs and outputs. portB is best used for AD conversions or inputs only.

Oops, answered on the wrong topic. I am going to shut up.

Yes, I have had a lot of trouble finding the right display. Do you know where I can find a library that supports the flex e-paper display? Would that fix the problem? :slight_smile:

My serial monitor now look like this

Waveshare has a library for the panels they sell. Good Display has demo examples.
Did you consider the post of @Idahowalker? I did see this issue on a hand-wired board I tried. tired I may be.

Hi Idahowalker,

Thank you for your response. I’m extremely new to this, so sorry for my ignorance. What is it that I need to change? I’m aware of the different ports, but i’m having trouble finding the exact information for wiring correctly :slight_smile:

Kind regards,
Naja