logo elektroda
logo elektroda
X
logo elektroda

ESP32-S3-Touch-LCD-4.3 i.e. ESP32-S3 and touchscreen - launching at PlatformIO

p.kaczmarek2 2118 16

TL;DR

  • Waveshare ESP32-S3-Touch-LCD-4.3 combines a 4.3-inch touchscreen with an ESP32-S3, plus RS485, CAN, I2C, a lithium charger, microSD, and two USB-C ports.
  • PlatformIO support came through ESP32_Display_Panel, but the board needed BOARD_CUSTOM.json changes because its 8MB flash conflicted with the default 16MB partition table.
  • The module uses an ESP32-S3-WROOM-1 MCN8R8 with a dual-core Xtensa LX7 at up to 240 MHz, 8MB Flash, and 8MB SRAM.
  • After switching to default_8MB.csv and adjusting the upload flash size, the board ran a simple LVGL demo with labels, buttons, sliders, charts, and dropdowns.
  • It behaves almost identically to the 5-inch version, but the frame rate still feels low and the display is less responsive than a modern phone.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • 4.3-inch ESP32-S3 touch LCD showing an interface with the text Elektroda.pl ESP32-S3 LCD and basic GUI components. .
    The ESP32-S3 Touch LCD 4.3 is, as the name suggests, a module featuring a 4.3" touchscreen controlled by the ESP32-S3, which is a dual-core, 32-bit Xtensa LX7 processor clocked at up to 240 MHz with 8MB Flash and external 8MB SRAM. The whole is enriched by various peripherals such as RS485, CAN, I2C, a 3.7V lithium battery charger or there microSD card slot and not one, but two USB Type C connectors.
    The module can be bought in our country for about 175 PLN, from abroad you can import this board cheaper.
    ESP32-S3 Touch LCD 4.3-inch module and power cables in a white cardboard box. White box with a blue stripe, labeled Waveshare and ESP32-S3-Touch-LCD-4.3 product sticker. Waveshare ESP32-S3-LCD-4.3 development board with visible connectors, chips, and ports. .
    Information about the board is best checked on the official manufacturer's website . The connectors and on-board circuitry are described there in detail:
    Diagram of the ESP32-S3 Touch LCD 4.3 board with labeled and numbered connectors and electronic components. .
    A list describing components and functions of the ESP32-S3 Touch LCD 4.3 board. .
    The board has the classic LVGL demo preloaded - just like the others in the series. Here, too, it feels that the FPS is quite low.


    .

    The ESP32_Display_Panel can be uploaded to the board, as I have shown for the ESP32-S3-Touch-LCD-5 board . It's just that in this case we should uncomment the option with BOARD_WAVESHARE_ESP32_S3_TOUCH_LCD_4_3, although in practice in my case it wasn't needed. These boards are so similar that the only difference was the size of the ESP32 Flash memory:
    ESP32-S3-WROOM-1 module on a PCB, next to a TF card slot and I2C, 3V3, and 5V markings. .
    ESP32-S3-WROOM-1 module with detailed markings on a PCB close-up. .
    Both are ESP32-S3-WROOM-1, but one is MCN8R8 - 8MB, the other is MCN16R8 - 16MB Flash. RAM 8MB in both. The program from the 16MB version does not even start:
    
    E (31) flash_parts: partition 3 invalid - offset 0x650000 size 0x640000 exceeds 
    flash chip size 0x800000
    
    E (32) boot: Failed to verify partition table
    
    .
    The solution turned out to be editing the BOARD_CUSTOM.json file - changing the default_16MB.csv partition table to default_8MB.csv, I also changed the Flash size in the upload section.
    Code: JSON
    Log in, to see the code
    .
    I have prepared simple example code for this, which sequentially creates different types of components within a single template:
    Code: C / C++
    Log in, to see the code
    .
    The above code creates successively:
    - a label (lv_label) with text in large font, centred on the screen
    - a container/template (lv_obj) with a flexible horizontal layout (LV_FLEX_FLOW_ROW) and spacing between elements
    - button with 'Click' label
    - text box (lv_textarea) with hint text "Text..."
    - checkbox (lv_checkbox) with the text "Agree"
    - line chart (lv_chart) with sample data
    - switch (lv_switch)
    - slider (lv_slider) with a range of 0-100 and a set value of 40
    - progress bar (lv_bar) with a set value of 70
    - a dropdown menu (lv_dropdown) with three options to choose from
    Result:
    Close-up of an ESP32-S3 touchscreen showing a LVGL app UI with GUI components, a dropdown menu, and FPS/CPU stats displayed. The ESP32-S3 LCD 4.3 touchscreen displays a graphical interface with a label, checkbox, chart, slider, and dropdown menu. .
    Basically, that's it - you can programme.

    Finally, a comparison between the 4.3" and 5" versions:
    Two ESP32-S3 touch displays on a white surface – the smaller one on the left, the larger one on the right. Two ESP32-S3 Touch LCD modules of different sizes, placed on a white background. .

    In summary , this was a very similar board to the already discussed Waveshare ESP32-S3-Touch-LCD-5 , there were no differences on the display control side. Only the ESP32 partitions had to be changed and it managed to be programmed just like the "five".
    The rest is identical to the "five", here too the display seemingly looks good, But the frame rate often drops quite low and it feels not as responsive as today's mobile devices.
    Do you have any ideas what kind of projects can be done on this type of display? I already have two, it's time to harness them to work somehow.
    I am attaching the board schematic.
    Attachments:
    • ESP32-S3-Touch-LCD-4.3-Sch.pdf (742.52 KB) You must be logged in to download this attachment.

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 14397 posts with rating 12321, helped 650 times. Been with us since 2014 year.
  • ADVERTISEMENT
  • #2 21562414
    krzbor
    Level 29  
    Posts: 1731
    Help: 40
    Rate: 1044
    Board Language: polish
    What puzzles me is why manufacturers do something like this. What is the purpose of this device? If I fix it on the wall, am I supposed to run wires out in all directions?
    The same if I add a stand for a free-standing device. Are the wires supposed to go off in different directions?
    Here is an example of how something like this is done (IP intercom example):
    ESP32-S3-Touch-LCD-4.3 i.e. ESP32-S3 and touchscreen - launching at PlatformIO .

    ESP32-S3-Touch-LCD-4.3 i.e. ESP32-S3 and touchscreen - launching at PlatformIO .

    All connectors fairly central, at the rear and perpendicular if possible
  • #3 21562661
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    krzbor wrote:
    I wonder why manufacturers do something like this
    .
    you can make yourself a control panel for HA, nothing cheaper now.
    gpio they are making it out, rs485 is there so you can outofbox to make it a controller for the furnace under modbus.

    if someone sat down and made a good driver for this lcd there would be no problems with fps.
  • #4 21562753
    krzbor
    Level 29  
    Posts: 1731
    Help: 40
    Rate: 1044
    Board Language: polish
    chemik_16 wrote:
    you can make yourself a control panel for HA, nothing cheap anymore.

    Exactly what I'm thinking of - an IOT control device, but the edge leads nullify the aesthetic use.
  • #5 21563198
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    >>21562753 .
    Because what we have here is the cartridge itself, they still sell frames for it
  • ADVERTISEMENT
  • #6 21563523
    krzbor
    Level 29  
    Posts: 1731
    Help: 40
    Rate: 1044
    Board Language: polish
    Has anyone bought or analysed buying something like this:

    ESP32-S3-Touch-LCD-4.3 i.e. ESP32-S3 and touchscreen - launching at PlatformIO .

    Link . I am concerned with how it performs.
  • ADVERTISEMENT
  • #7 21563535
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    >>21563523 .
    You buy any tablet and lan card on usb as you need.
    I generally use android tablets for HA but they have all sorts of flops, they reset, battery swells after a while etc.
  • #8 21563632
    krzbor
    Level 29  
    Posts: 1731
    Help: 40
    Rate: 1044
    Board Language: polish
    chemik_16 wrote:
    Generally I use android tablets for HA, but they have all sorts of freaks, they reset, the battery swells after a while etc.
    .
    I know this, which is why I asked about the indicated tablet. There is no battery there, there is POE.
  • #9 21563636
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    It's not cheap, the battery can be given smaller, or you can buy an android photo frame, there is no battery ;) but this from the insert will come out cheaper
  • #10 21563657
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14397
    Help: 650
    Rate: 12321
    chemik_16 wrote:
    reset, battery swells after some time etc.
    .
    And it's not possible to convert it so that it's powered directly from the power supply, without a battery at all? I'm assuming you're talking about the tablet as a desktop controller. I remember that when the charging circuit in my old Xiaomi phone died I was able to get it to work by applying voltage to the battery connector.
    Helpful post? Buy me a coffee.
  • #11 21563676
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    >>21563657 .
    It can be done, generally this product above is nothing more than a Chinese tablet scaled down from a battery, with a poe to usb converter.
    Worse with the rest of the pains, you have to somehow keep the tablet in kiosk mode. So that the application stands up on its own at start-up and cannot be switched over.
  • #12 21563864
    dktr
    Level 26  
    Posts: 930
    Help: 45
    Rate: 702
    Board Language: polish
    This microcontroller is too slow for such resolutions, 10 FPS is however not enough - we are talking about a touch-controlled user interface, the data display itself as OK.
  • #13 21563934
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    >>21563864 .
    120fps needed to turn something on with a button ? :)
  • ADVERTISEMENT
  • #14 21563970
    dktr
    Level 26  
    Posts: 930
    Help: 45
    Rate: 702
    Board Language: polish
    120 is not necessary, but the 30 must be so that the device gives the impression of being modern and not a mulled crisper made a dozen years ago ;)
  • #15 21564031
    chemik_16
    Level 27  
    Posts: 999
    Help: 74
    Rate: 127
    Board Language: polish
    >>21563970 .
    Well, the only thing that slows me down is moving the demo between tabs and I think the touch, so the cpu is practically 0% loaded when displaying animations. Clearly a lack of optimisation in the lvgl libraries.
  • #16 21564323
    Anonymous
    Level 1  
  • #17 21564329
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14397
    Help: 650
    Rate: 12321
    The essential question now is whether this pre-loaded demo is already with these optimisations?

    I've had a look at the project I'm basing it on and only some of the settings have it differently, but at the same time with heavy screens there I have an FPS comparable to this demo, and with simpler ones slightly better. I'd have to test a bit more to determine how optimised ESP32_Display_Panel actually is, though.
    Helpful post? Buy me a coffee.
📢 Listen (AI):

Topic summary

✨ The discussion centers on the ESP32-S3 Touch LCD 4.3 module, a 4.3" touchscreen device powered by the ESP32-S3 dual-core Xtensa LX7 processor (up to 240 MHz) with 8MB Flash and 8MB external SRAM. It features multiple peripherals including RS485, CAN, I2C, a lithium battery charger, microSD slot, and dual USB Type-C connectors. The module is available domestically for about 175 PLN or cheaper via import. Users debate its practical applications, particularly as a home automation (HA) control panel or IoT device, noting the challenge of edge-mounted connectors affecting aesthetics and installation. Comparisons are made to other solutions like Android tablets with LAN USB adapters, highlighting issues such as battery life, resets, and kiosk mode stability. Performance concerns focus on the microcontroller's limited ability to handle high frame rates for smooth touch interfaces, with 10 FPS deemed insufficient and 30 FPS suggested as a minimum for a modern feel. The LVGL graphics library is discussed, with optimization challenges requiring recompilation of ESP-IDF rather than Arduino SDK, limiting ease of use. The pre-loaded demo's optimization level remains uncertain, with some indications that heavy screens still yield low FPS. Overall, the module is seen as a cost-effective but technically demanding option for embedded touchscreen control, requiring careful software optimization and hardware integration considerations.
Generated by the language model.

FAQ

TL;DR: For PlatformIO users moving from the 16MB 5-inch example to the 4.3-inch board with 8MB Flash: change the partition layout and flash size, or boot will fail. As one poster put it, "the solution turned out to be editing the BOARD_CUSTOM.json file". This FAQ helps ESP32-S3 touchscreen developers bring up the Waveshare 4.3-inch panel and understand its real limits. [#21562195]

Why it matters: This thread shows the exact fix that gets the Waveshare ESP32-S3-Touch-LCD-4.3 booting in PlatformIO and explains where the board is useful, and where its UI performance still falls short.

Cecha ESP32-S3-Touch-LCD-4.3 ESP32-S3-Touch-LCD-5
Przekątna ekranu 4.3 cala 5 cali
Moduł ESP32 ESP32-S3-WROOM-1 MCN8R8 ESP32-S3-WROOM-1 MCN16R8
Flash 8MB 16MB
PSRAM 8MB 8MB
Zmiana w PlatformIO tabela partycji 8MB przykład 16MB działa bez tej zmiany

Kluczowy wniosek: Różnica między wersją 4.3" i 5" okazała się głównie pamięciowa, nie graficzna. Ekran rusza po korekcie partycji Flash, ale odczucie płynności nadal ogranicza wydajność całego stosu LVGL i konfiguracja SDK. [#21562195]

Quick Facts

  • Moduł opisano jako ESP32-S3 z dwoma rdzeniami Xtensa LX7 32-bit do 240 MHz, z 8MB Flash i zewnętrznym 8MB SRAM. [#21562195]
  • Płytka ma interfejsy RS485, CAN, I2C, ładowarkę akumulatora 3.7V Li-Ion, gniazdo microSD i dwa USB Type-C, więc nadaje się na panel sterujący, nie tylko prosty ekran. [#21562195]
  • W poście podano cenę około 175 PLN w Polsce, z możliwością tańszego importu z zagranicy. [#21562195]
  • Błąd startu pojawia się, gdy firmware używa układu 16MB, a faktyczna kość ma 0x800000 bajtów = 8MB; wtedy partycja z offsetem 0x650000 i rozmiarem 0x640000 wychodzi poza pamięć. [#21562195]
  • W dyskusji padła ocena, że około 10 FPS to za mało dla dotykowego interfejsu, choć do samego wyświetlania danych może wystarczyć. [#21563864]

How do I get the Waveshare ESP32-S3-Touch-LCD-4.3 working in PlatformIO when the example is set up for the 16MB ESP32-S3-Touch-LCD-5?

You need to adapt the example to the 4.3-inch board’s 8MB Flash layout. 1. Open BOARD_CUSTOM.json. 2. Change the partition file from default_16MB.csv to default_8MB.csv. 3. Change the upload Flash size from 16MB to 8MB-equivalent values. The poster reported that display control stayed the same as on the 5-inch model, and only the ESP32 memory layout blocked boot. [#21562195]

Why does the ESP32-S3-Touch-LCD-4.3 show "partition 3 invalid" and "Failed to verify partition table" after flashing?

It fails because the flashed image expects a 16MB Flash map, but the 4.3-inch board in the thread had only 8MB Flash. Boot reported partition 3 at offset 0x650000 with size 0x640000, which exceeded the chip size 0x800000. That makes the partition table invalid before the application even starts. [#21562195]

What exactly should I change in BOARD_CUSTOM.json to switch an ESP32-S3 project from a 16MB flash layout to an 8MB flash layout?

Change the partition CSV and the upload Flash size. In the shared file, build.arduino.partitions was set to default_16MB.csv, and upload.flash_size plus upload.maximum_size matched 16MB. The working fix was to replace the partition file with default_8MB.csv and update the Flash-size-related upload settings so they no longer describe a 16MB target. [#21562195]

How do I create a simple LVGL demo on the ESP32-S3-Touch-LCD-4.3 with a label, button, textarea, checkbox, chart, switch, slider, bar and dropdown?

Create the active screen, then add each LVGL widget to a horizontal container. The example builds a centered label in lv_font_montserrat_48, then adds a button, textarea, checkbox, line chart with 6 points, switch, slider set to 40, bar set to 70, and a dropdown with 3 options. That gives a compact UI smoke test for display and touch bring-up. [#21562195]

What is LVGL and why is it commonly used on ESP32-S3 touchscreen displays like the Waveshare Touch LCD series?

"LVGL" is a graphics library that builds embedded user interfaces, provides ready-made widgets, and supports layouts, fonts, charts, and touch interaction. It is used here because the board ships with an LVGL demo and the shared sample code creates labels, buttons, charts, sliders, and dropdowns directly with LVGL APIs. [#21562195]

What is RS485 in the context of the ESP32-S3-Touch-LCD-4.3, and how could it be used for a Modbus furnace or home automation controller?

RS485 is the board’s wired industrial bus option, useful when a touchscreen must talk to field devices over a robust cable link. One reply pointed out that the board exposes RS485 and could work “out of box” as a furnace controller under Modbus, or as a Home Assistant control panel with extra GPIO-based integration. [#21562661]

ESP32-S3-Touch-LCD-4.3 vs ESP32-S3-Touch-LCD-5 — what are the real differences in hardware, flash size and software setup?

In this thread, the practical difference was mainly display size and Flash capacity, not the display-control stack. Both boards used ESP32-S3-WROOM-1 and had 8MB RAM, but the 4.3-inch unit was MCN8R8 with 8MB Flash, while the 5-inch unit was MCN16R8 with 16MB Flash. Software only needed a partition-layout change for the smaller Flash device. [#21562195]

Why does the preloaded LVGL demo on the Waveshare ESP32-S3 touchscreen feel slow, and what actually limits the FPS?

The demo feels slow because the whole UI path appears to be the bottleneck, not raw widget count alone. The original post said the factory LVGL demo had noticeably low FPS, and later replies argued that about 10 FPS is not enough for a touch UI. Others blamed weak optimization in the LVGL libraries and touch handling rather than CPU saturation during simple animations. [#21564031]

Which ESP-IDF settings improve LVGL performance on the ESP32-S3-Touch-LCD-4.3, and why are those optimizations harder to use from Arduino?

The thread confirms that the manufacturer’s material includes ESP-IDF settings that improve LVGL behavior, but it does not list those settings line by line. A later reply says these changes require recompiling the whole ESP-IDF, which makes them awkward in Arduino-based workflows. That is why Arduino was described as a poor fit for squeezing maximum LVGL performance from this board. [#21564323]

What kinds of practical projects can I build with the ESP32-S3-Touch-LCD-4.3, especially for Home Assistant or wall-mounted control panels?

The strongest use case in the discussion is a Home Assistant wall panel or a furnace controller. One poster explicitly suggested a Home Assistant control panel and noted the onboard RS485 as a direct path to a Modbus-based heating controller. The board also has GPIO, CAN, I2C, microSD, and dual USB-C, so it fits custom dashboards better than a pure display module. [#21562661]

How should I mount the Waveshare ESP32-S3-Touch-LCD-4.3 so the edge connectors and cables do not ruin the look of a wall panel?

Mount it in a frame or enclosure that redirects cables behind the panel, not straight out from the edges. One reply criticized the exposed side connectors for wall use, while another answered that the bare module is only the insert and separate frames are sold for it. Without that extra mechanical layer, the panel looks unfinished in fixed installations. [#21563198]

What frames or enclosures are available for the ESP32-S3-Touch-LCD-4.3 module, and how do they solve the connector placement problem?

The thread only confirms that frames are sold for the module; it does not name a part number or vendor SKU. Their purpose is clear: they turn the bare “cartridge” into a wall-ready or stand-mounted panel and hide the edge connectors so cables can route more cleanly. That directly addresses the aesthetics problem raised in the discussion. [#21563198]

For a Home Assistant wall panel, how does an ESP32-S3 touchscreen compare with an Android tablet or a PoE Android panel in performance and reliability?

The ESP32-S3 panel is simpler and more embedded, but it feels less fluid than a modern tablet. In contrast, Android tablets were described as faster-looking yet prone to resets and swollen batteries over time, while a PoE Android panel avoids the battery issue but remains a more tablet-like product with kiosk-management overhead. The thread presents this as a trade-off between polish and long-term appliance behavior. [#21563535]

How do people run an Android tablet without a battery as a fixed desktop or wall controller, and what problems still remain with kiosk mode and stability?

People either feed power directly where the battery connects or buy a tablet-like panel already stripped of the battery. One poster said an old Xiaomi phone could be revived by applying voltage to the battery connector, and another said the PoE wall unit was basically a Chinese tablet without a battery plus a PoE-to-USB converter. The remaining problems were app auto-start, kiosk lock-in, resets, and general Android oddities. [#21563676]

What is the real-world performance of the PoE Android wall tablet mentioned in the discussion, and how does it compare with using a standard tablet plus a USB LAN adapter?

The thread does not provide measured real-world performance for that PoE panel, so there is no reliable FPS, latency, or stability benchmark to quote. The only concrete comparison is practical: one reply said you can buy a normal tablet plus a USB LAN adapter, while another preferred the PoE idea because it removes the battery. That makes the PoE option cleaner mechanically, but not proven faster in this discussion. [#21563632]
Generated by the language model.
ADVERTISEMENT