ST7701S 480x480 display support #35
-
Dear moononournation! Can You please help me how to implement it into Your library? I have init code from manufacturer: I am really looking forward to find a way to use this display. Your library seems to be the only one for now to support 9-bit SPI displays. I am ready to suport You with donation if You can make it work. |
Beta Was this translation helpful? Give feedback.
Replies: 12 comments 40 replies
-
When I search ST7701 on online shop, it always show data port is SPI+RGB. That means it requires 3 pins(SPI) + 24 pins(RGB)for driving it. Only ESP32 S2 have enough pins driving it, so I will try it when the ESP32 S2 support on Arduino IDE is ready. |
Beta Was this translation helpful? Give feedback.
-
Hello, I find library for ST7701S (320x820) and ESP32. I have init code from manufacturer. |
Beta Was this translation helpful? Give feedback.
-
I just found LG4573B has same situation |
Beta Was this translation helpful? Give feedback.
-
【ESP32-S3驱动480*480的RGB屏DEMO,效果不错-哔哩哔哩】 https://b23.tv/t0UkjQY |
Beta Was this translation helpful? Give feedback.
-
As you provided a LVGL benchmark demo, I also tested mine: |
Beta Was this translation helpful? Give feedback.
-
@moononournation Thank You! My code: #include <Arduino_GFX_Library.h>
#define GFX_BL 4 // default backlight pin, you may replace DF_GFX_BL to actual backlight pin
Arduino_ESP32RGBPanel *bus = new Arduino_ESP32RGBPanel(
38 /* CS */, 45 /* SCK */, 48 /* SDA */,
40 /* DE */, 41 /* VSYNC */, 42 /* HSYNC */, 39 /* PCLK */,
18 /* R0 */, 8 /* R1 */, 3 /* R2 */, 46 /* R3 */, 9 /* R4 */,
13 /* G0 */, 12 /* G1 */, 11 /* G2 */, 10 /* G3 */, 16 /* G4 */, 17 /* G5 */,
45 /* B0 */, 48 /* B1 */, 47 /* B2 */, 21 /* B3 */, 14 /* B4 */
);
Arduino_ST7701_RGBPanel *gfx = new Arduino_ST7701_RGBPanel(
bus, GFX_NOT_DEFINED, 300 /* width */, 300 /* height */);
void setup(void)
{
gfx->begin();
gfx->fillScreen(BLACK);
#ifdef GFX_BL
pinMode(GFX_BL, OUTPUT);
digitalWrite(GFX_BL, HIGH);
#endif
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
}
|
Beta Was this translation helpful? Give feedback.
-
@AaronHo32 I had to invertDisplay() as all colours were true for 0xFFFF-my_colour. Don't for get to set the screen res to 480x480 in the Arduino_ST7701_RGBPanel *gfx constructor. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, |
Beta Was this translation helpful? Give feedback.
-
Dear moononournation, thanks for your great work! #include "Arduino.h"
#include <Arduino_GFX_Library.h>
#define GFX_BL 38
Arduino_DataBus *bus = new Arduino_SWSPI(
GFX_NOT_DEFINED /* DC */, 21 /* CS */,
47 /* SCK */, 41 /* MOSI */, GFX_NOT_DEFINED /* MISO */);
Arduino_ESP32RGBPanel *rgbpanel = new Arduino_ESP32RGBPanel(
39 /* DE */, 48 /* VSYNC */, 40 /* HSYNC */, 45 /* PCLK */,
10 /* R0 */, 16 /* R1 */, 9 /* R2 */, 15 /* R3 */, 46 /* R4 */,
8 /* G0 */, 13 /* G1 */, 18 /* G2 */, 12 /* G3 */, 11 /* G4 */, 17 /* G5 */,
47 /* B0 */, 41 /* B1 */, 0 /* B2 */, 42 /* B3 */, 14 /* B4 */,
1 /* hsync_polarity */, 10 /* hsync_front_porch */, 10 /* hsync_pulse_width */, 10 /* hsync_back_porch */,
1 /* vsync_polarity */, 14 /* vsync_front_porch */, 2 /* vsync_pulse_width */, 12 /* vsync_back_porch */);
Arduino_RGB_Display *gfx = new Arduino_RGB_Display(
480 /* width */, 480 /* height */, rgbpanel, 0 /* rotation */, true /* auto_flush */,
bus, GFX_NOT_DEFINED /* RST */, st7701_type7_init_operations, sizeof(st7701_type7_init_operations));
void setup()
{
delay(2000);
Serial.begin(115200);
Serial.println("Rotary Short Demo");
delay(1000);
Serial.println("gfx beguin");
gfx->begin();
delay(1000);
Serial.println("BACK LED ON?");
pinMode(GFX_BL, OUTPUT);
digitalWrite(GFX_BL, HIGH);
gfx->fillScreen(RED);
delay(1000);
Serial.println("colorinbchius");
delay(1000);
gfx->fillScreen(GREEN);
delay(1000);
gfx->fillScreen(BLUE);
delay(1000);
gfx->fillScreen(BLACK);
delay(1000);
Serial.println("colorinbchius");
gfx->setCursor(10, 10);
gfx->setTextColor(RED);
gfx->println("Setup done!");
Serial.println("Setup done");
}
void loop()
{
gfx->println("Hello World!");
Serial.println("Hello World");
delay(500);
} |
Beta Was this translation helpful? Give feedback.
-
Again, regarding the [ZX2D10GE10R-V4848] If I try with your example PDQgraphicstest.ino, the backlight is on, the serial works and displays the figures and messages, but again the display is only a black screen. |
Beta Was this translation helpful? Give feedback.
-
HI, I was able to run the code that was presented by jajito, but i have a problem with using certain pins. I am using the ESP32-S3-WROOM-1 (N8R8) with 8MB of PSRAM. When i set GPIO pins 33-36 as OUTPUT, the board keeps reseting with the error: rst:0x8 (TG1WDT_SYS_RST) ,boot:0x8 (SPI_FAST_FLASH_BOOT). I know these pins are not available on the development board (WROOM) but i am trying to use these pins on a non development board also. When i use pins 33-36 for the standard GFX library, I dont have this reset problem. So it doesnt appear to be the WROOM board that is causing this issue. Perhaps I could raise this as an issue with your repository? Would you have any suggestions as to why there are problems with these pins. When I use jajitos example, his pinout works fine. Thanks.
|
Beta Was this translation helpful? Give feedback.
-
Good day @moononournation
Board I am getting a compilation error in platformio,
The code is one of the problems, the second problem is that I can't understand whether the display is connected either via |
Beta Was this translation helpful? Give feedback.
When I search ST7701 on online shop, it always show data port is SPI+RGB. That means it requires 3 pins(SPI) + 24 pins(RGB)for driving it. Only ESP32 S2 have enough pins driving it, so I will try it when the ESP32 S2 support on Arduino IDE is ready.