Support on HX8369A TFT with ESP32-WROOM-32

I am attempting to interface an HX8369A 4.3-inch TFT display with an ESP32-WROOM-32 module using the latest version 1.4.7 of the library. Despite following the setup instructions and connecting the necessary pins, the display does not show any output. Below is my setup and code, along with details of the interface.

Hardware Details:

  • Display: HX8369A 4.3-inch TFT (480x800 resolution)
  • Microcontroller: ESP32-WROOM-32
  • Library: Arduino GFX Library v1.4.7
  • Power: The RD pin is connected to 3.3V as suggested, to pull it up since it's not used.

Pin Configuration:

  • TFT_DC (Data/Command): GPIO 27
  • TFT_CS (Chip Select): GPIO 5
  • TFT_WR (Write): GPIO 26
  • TFT_RD (Read - Pulled up to 3.3V, not used): GFX_NOT_DEFINED (or 3.3V directly)
  • TFT_RST (Reset): GPIO 33
  • Data Bus:
    • D0: GPIO 16
    • D1: GPIO 17
    • D2: GPIO 18
    • D3: GPIO 19
    • D4: GPIO 21
    • D5: GPIO 12
    • D6: GPIO 23
    • D7: GPIO 25

Code Used:

#include <Arduino_GFX_Library.h>

#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#define TFT_RST 33

#if defined(DISPLAY_DEV_KIT)
Arduino_GFX *gfx = create_default_Arduino_GFX();
#else /* !defined(DISPLAY_DEV_KIT) */
Arduino_DataBus *bus = new Arduino_ESP32PAR8(27 /* DC */, 5 /* CS */, 26 /* WR */, GFX_NOT_DEFINED /* RD */,
    16 /* D0 */, 17 /* D1 */, 18 /* D2 */, 19 /* D3 */, 21 /* D4 */, 12 /* D5 */, 23 /* D6 */, 25 /* D7 */);

Arduino_GFX *gfx = new Arduino_HX8369A(bus, TFT_RST, 0 /* rotation */, false /* IPS */, 480, 800, 0, 7, 0, 57);
#endif /* !defined(DISPLAY_DEV_KIT) */

void setup(void)
{
  Serial.begin(115200);
  Serial.println("Arduino_GFX Hello World example");

  if (!gfx->begin())
  {
    Serial.println("gfx->begin() failed!");
  }
  gfx->fillScreen(BLACK);

  pinMode(GFX_BL, OUTPUT);
  digitalWrite(GFX_BL, HIGH);

  gfx->setCursor(10, 10);
  gfx->setTextColor(RED);
  gfx->println("Hello World!");

  delay(5000); // 5 seconds
}

void loop()
{
  gfx->setCursor(random(gfx->width()), random(gfx->height()));
  gfx->setTextColor(random(0xffff), random(0xffff));
  gfx->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
  gfx->println("Hello World!");

  delay(1000); // 1 second
}

Problem:
The display remains unresponsive and shows no output. The initialization seems to proceed, but nothing appears on the screen.

Potential Areas of Concern:

  1. Pin Configuration: The pin mapping used may not be correct or fully supported.
  2. Display Driver Support: The HX8369A driver may not be fully supported or configured correctly in the library.
  3. Pull-up on RD Pin: The RD pin is pulled up to 3.3V as recommended since it's not used. This should be correct, but there might be issues related to this.

Request:
Could you please provide guidance on whether the pin configuration or the driver support needs adjustment in the Arduino GFX library? Additionally, if there are any examples or debugging steps you can recommend for getting the HX8369A display working with the ESP32, that would be highly appreciated.


I moved your topic to an appropriate forum category @empero-man.

In the future, please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

1 Like

Help please

Bumping a topic usually doesn't help.

The Arduino_GFX library is not well known with Arduino Forum members.
And the Authors do not observe the Arduino Forum afaik.

But you might stir some interest, if you provide a link to your display, or any supporting information about it.

There seems to be a relevant part of your code missing, on top.
Or are you sure the defaults are correct for your display?:

#define GFX_BL DF_GFX_BL // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
#define TFT_RST 33

First things to check:

  • do you have a continuously active reset?
  • what is the active state needed for the BL pin?