Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[POSSIBLE SOLUTION] Low contrast on Waveshare 7.5" BW (FPC-C001) #160

Open
AdamJSchofield opened this issue Feb 26, 2025 · 5 comments
Open

Comments

@AdamJSchofield
Copy link

When I initially set up this project on my 7.5" BW Waveshare EPD with the Waveshare ESP32 driver board (v3), the DISP_BW_V2 macro called the GxEPD2_750_T7 constructor. I got a really washed out image with low contrast, which is an issue I have seen on some other forums while looking around for a fix.

I noticed the startup sequence did not match the Waveshare demo that works just fine. Eventually I came across this in the GxEPD examples and noticed the FPC-C001 identifier. Lo and behold, my ribbon matches. So I swapped out the constructors and this project works like a charm.

I got my display from Amazon. I am not sure if they ship different controller versions or what. I am more familiar with OLED display drivers.

I would be happy to submit a PR with and additional macro for this display type, but wanted to ask first. Maybe one of them are being phased out and I just got unlucky?

@jvherring
Copy link

I also have this display from amazon and would like to see exactly in detail how you got it to work correctly.

@AdamJSchofield
Copy link
Author

AdamJSchofield commented Mar 14, 2025

@jvherring

I also have this display from amazon and would like to see exactly in detail how you got it to work correctly.

If you have the 7.5" BW Waveshare display that has "FPC-C001" printed on the ribbon cable, you should update this code from renderer.cpp to use the GxEPD2_750_GDEY075T7 constructor instead of GxEPD2_BW<GxEPD2_750_T7.

Mine looks like:

#ifdef DISP_BW_V2
GxEPD2_BW<GxEPD2_750_GDEY075T7, GxEPD2_750_GDEY075T7::HEIGHT> display(
GxEPD2_750_GDEY075T7(PIN_EPD_CS,
PIN_EPD_DC,
PIN_EPD_RST,
PIN_EPD_BUSY));

And of course change your pin mappings in config.cpp to match your driver board. For the Waveshare driver board with integrated ESP32 that I am using, it looks like this:

const uint8_t PIN_BAT_ADC = 17; // A0 for micro-usb firebeetle
// Pins for E-Paper Driver Board
const uint8_t PIN_EPD_BUSY = 25; // 5 for micro-usb firebeetle
const uint8_t PIN_EPD_CS = 15;
const uint8_t PIN_EPD_RST = 26;
const uint8_t PIN_EPD_DC = 27;
const uint8_t PIN_EPD_SCK = 13;
const uint8_t PIN_EPD_MISO = 19; // 19 Master-In Slave-Out not used, as no data from display
const uint8_t PIN_EPD_MOSI = 14;
const uint8_t PIN_EPD_PWR = 16; // Irrelevant if directly connected to 3.3V

@jvherring
Copy link

Did you also update renderer.h?

@jvherring
Copy link

I now have a functioning display. For completeness, I am using the DESPI-C02 Interface board, (wired as shown on the main page) and as suggested in another "Issue", I moved the original D3 connection to the interface board to one of the 3.3 V pins on my FireBeetle 2 ESP32-E Microcontroller. I changed both renderer.cpp as indicated above and renderer.h as follows:

#ifdef DISP_BW_V2
#define DISP_WIDTH 800
#define DISP_HEIGHT 480
#include <GxEPD2_BW.h>
extern GxEPD2_BW<GxEPD2_750_GDEY075T7, GxEPD2_750_GDEY075T7::HEIGHT> display;
#endif

@AdamJSchofield
Copy link
Author

@jvherring Great, glad you got it working! Its good to know that it works with the DESPI as well. Just to confirm - you were having the low-contrast issue? Can you confirm that with the DESPI connected to 3.3v as you describe, and using the OLD display constructor, the issue persists? I'm just trying to make sure I understand whether its the 3.3v supply, or the startup instructions which vary by constructor. In my case I didn't have a problem with the power supply.

It may be good to include some other defaults in this project for those of us with a slightly different display model. I'm working on some other projects at the moment, but when I come back to this one I'll submit a PR to make it more obvious for others who were in our position.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants