elik745i/ESP32-2432s024c

help needed with ESP32-2432s022c board

Opened this issue · 0 comments

I recently bought some of these screens (ESP32-2432s022c)

I tried configuring it based on your github but I only am able to get some distorted images on the display. ( snow pattern )
It uses ST7789 driver and the same touch driver as your board. The difference is that the tft display uses an 8 bit parallel bus.
It also needs to use lovyanGFX since it uses pin's above 31

I have some sample code that runs perfect on the board. And I tried to map the pins like in that code but I am stuck now on this distorted image

Perhaps you have some ideas on how to get it working ?

below is the working arduino code and the platformio.ini env I created

public:
LGFX(void)
{
{
auto cfg = _bus_instance.config();
cfg.freq_write = 25000000;
cfg.pin_wr = 4;
cfg.pin_rd = 2;
cfg.pin_rs = 16;

        cfg.pin_d0 = 15;
        cfg.pin_d1 = 13;
        cfg.pin_d2 = 12;
        cfg.pin_d3 = 14;
        cfg.pin_d4 = 27;
        cfg.pin_d5 = 25;
        cfg.pin_d6 = 33;
        cfg.pin_d7 = 32;

        _bus_instance.config(cfg);
        _panel_instance.setBus(&_bus_instance);
    }

    {
        auto cfg = _panel_instance.config();

        cfg.pin_cs = 17;
        cfg.pin_rst = -1;
        cfg.pin_busy = -1;

        cfg.panel_width = 240;
        cfg.panel_height = 320;
        cfg.offset_x = 0;
        cfg.offset_y = 0;
        cfg.offset_rotation = 0;
        // cfg.dummy_read_pixel = 8;
        // cfg.dummy_read_bits = 1;
        cfg.readable = false;
        cfg.invert = false;
        cfg.rgb_order = false;
        cfg.dlen_16bit = false;
        cfg.bus_shared = true;

        _panel_instance.config(cfg);
    }

    setPanel(&_panel_instance);
}

};

[env:esp32-2432s022c_4MB]
extends = esp32-2432s022, flash_4mb
board = esp32dev
build_flags =
${esp32-2432s022.build_flags}
${esp32.no_ps_ram}

${esp32.hspi}
-D LGFX_USE_V1=1
-D ILI9341_DRIVER=1
-D ESP32_PARALLEL=1
-D TOUCH_DRIVER=0x0820
-D HASP_USE_LGFX_TOUCH=1
-D TFT_ROTATION=0
-D TFT_WIDTH=240
-D TFT_HEIGHT=320
-D TFT_BCKL=5  ;None, configurable via web UI (e.g. 2 for D4)
-D TFT_CS=17  ; Chip select control pin
-D TFT_RST=-1 ; Reset pin
-D TFT_DC=16	
-D TFT_WR=4   ; Write strobe control pin - must use a pin in the range 0-31
-D TFT_RD=2
-D TFT_D0=15  ; Must use pins in the range 0-31 for the data bus
-D TFT_D1=13  ; so a single register write sets/clears all bits
-D TFT_D2=12
-D TFT_D3=14
-D TFT_D4=27
-D TFT_D5=25
-D TFT_D6=33
-D TFT_D7=32
-D TOUCH_SDA=21
-D TOUCH_SCL=22
;-D TOUCH_IRQ=34   ; use 34-39 as these are input only pins
-D TOUCH_RST=-1   ; not used, connected to 3.3V
-D SUPPORT_TRANSACTIONS
-D TOUCH_OFFSET_ROTATION=0
;-D I2C_TOUCH_FREQUENCY=400000
;-D I2C_TOUCH_PORT=1
-D I2C_TOUCH_ADDRESS=0x15
-D SPI_FREQUENCY=65000000
-D SPI_TOUCH_FREQUENCY=2500000
-D SPI_READ_FREQUENCY=20000000

lib_deps =
${esp32-2432s022.lib_deps}
${lovyangfx.lib_deps}