gen4-ESP32 Series
Description
The gen4-ESP32 Series of Intelligent Display Modules, is designed and manufactured by 4D Systems.
These display modules are available in 2.4", 2.8", 3.2" and 3.5", offering an SPI Interface between the ESP32-S3R8 Processor, and the TFT LCD Displays. The 2.4", 2.8" and 3.5" displays are IPS TFT LCD's, and the 3.2" is a TN TFT LCD.
Available in Non-Touch, Capacitive Touch, and Capacitive Touch with Cover Lens Bezel (CLB). Resistive Touch is not available at this time due to space constrains on the PCB for an RTP controller.
The ESP32-S3R8 Processor makes available multiple GPIO which include UART, SPI, I2C, PWM and Analog functionality, while also serving interfaces for the LCD Touch screen, Quad SPI Flash, microSD Card, and Native USB-C.
The user interface to the gen4-ESP32 series is a 30-pin FPC/ZIF socket, designed for a 30-way 0.5mm pitch FFC cable, for easy and simple connection to an application or motherboard, or for connecting to accessory boards for a range of functionality advancements.
This series of boards is compatible with the 4D Systems Workshop4 IDE, utilising the Espressif compiler and 4D Systems purpose built libraries, allowing a feature rich design and programming experience.
Any code designed and written to run on other 4D Systems display modules, such as modules featuring Goldelox, Picaso, Pixxi or Diablo16 Graphics Processors, are unfortunately not compatible with the gen4-ESP32 range due to being a totally different processor family. However, please contact 4D Systems Support Team for assistance if you are planning on migrating from a different 4D Systems display model, as there are some similarities between them - such as the graphics, however a majority of the coding will have to be adapted.
From a mechanical perspective, these gen4-ESP32 modules are physically the same mounting size as other gen4 products by 4D Systems. The only difference is the circuitry used. Overall thickness of these gen4-ESP32 modules are greater than other gen4 products, due to the USB-C connector. Typically, where ever a different gen4 module had been mounted, a gen4-ESP32 module could fit in the same location.
Features
- Powerful ESP32 Graphics Processor by Espressif.
- 240x320 resolution displays for 2.4", 2.8", and 3.2", while a 320x480 resolution display for 3.5", utilising RGB-565 colours.
- IPS TFT LCD display for 2.4", 2.8" and 3.5" and TN TFT LCD display for 3.2".
- Available in non-Touch, Capacitive Touch, and Capacitive Touch with Cover Lens Bezel (CLB).
- 16MB of External Quad SPI Flash.
- 8MB of Internal Octal SPI PSRAM.
- Up to 20 GPIO of which
- Capable of SPI (2 Channels), I2C (2 Channels), UART (3 Channels), Digital Input/Output, Analog Input (2 Channels) and other ESP32-S3 supported IO functions.
- 2 GPIO dedicated to Native USB-C functionality (GPIO19/20) unless that is hardware disabled, it is then available as GPIO.
- 1 GPIO available after boot (GPIO0), strapping pin.
- 2 GPIO available if the UART is not required (GPIO43/44)
- Serial UART (GPIO43/44), and up to 3 more UART's available by utilising available GPIO.
- 30pin FPC connection, for all signals, power, communications, GPIO and UART programming.
- Push/Pull micro-SD memory card connector for multimedia storage and data logging purposes.
- Display full colour images, animations, icons and video clips.
- 4.0V to 6.0V range operation (single supply).
- 4x mounting tabs with 3.2mm holes for mechanical mounting using M3 screws (non CLB models only).
- 3M Adhesive around perimeter of Cover Lens Bezel for mounting the CTP-CLB model.
- RoHS and REACH compliant.
- CE/EMC and UKCA compliance pending.
- PCB is UL 94V-0 Flammability Rated.
- Module dimensions:
- (2.4" non-Touch): 78.4 x 44.8 x 11.3mm
- (2.4" Capacitive Touch): 78.4 x 44.8 x 12.4mm
- (2.4" Capacitive Touch w/ CLB): 79.0 x 58.7 x 12.4mm
- (2.8" non-Touch): 87.3 x 52.1 x 11.5mm
- (2.8" Capacitive Touch): 87.3 x 52.1 x 12.6mm
- (2.8" Capacitive Touch w/ CLB): 87.6 x 67.2 x 12.6mm
- (3.2" non-Touch): 95.7 x 57.14 x 12.9mm
- (3.2" Capacitive Touch): 95.7 x 57.1 x 13.6mm
- (3.2" Capacitive Touch w/ CLB): 98.8 x 72.6 x 13.6mm
- (3.5" non-Touch): 101.1 x 56.6 x 12.4mm
- (3.5" Capacitive Touch): 101.1 x 56.6 x 13.1mm
- (3.5" Capacitive Touch w/ CLB): 104.2 x 72.1 x 13.1mm
- Weighing (approximately):
- (2.4" non-Touch): ~ 21g
- (2.4" Capacitive Touch): ~ 26g
- (2.4" Capacitive Touch w/ CLB): ~ 30g
- (2.8" non-Touch): ~ 29g
- (2.8" Capacitive Touch): ~ 36g
- (2.8" Capacitive Touch w/ CLB): ~ 41g
- (3.2" non-Touch): ~ 32g
- (3.2" Capacitive Touch): ~ 48g
- (3.2" Capacitive Touch w/ CLB): ~ 54g
- (3.5" non-Touch): ~ 37g
- (3.5" Capacitive Touch): ~ 47g
- (3.5" Capacitive Touch w/ CLB): ~ 54g
Hardware Overview
Pin | Symbol | I/O | Description |
---|---|---|---|
1 | GND | P | Supply Ground |
2 | GPIO17 | I/O/A | General Purpose Input/Output capable of Analog, 3.3V logic. |
3 | GPIO18 | I/O/A | General Purpose Input/Output capable of Analog, 3.3V logic. |
4 | GPIO16 | I/O/A | General Purpose Input/Output pin capable of Analog, 3.3V logic |
5 | GPIO15 | I/O/A | General Purpose Input/Output pin capable of Analog, 3.3V logic |
6 | GPIO48 | I/O | General Purpose Input/Output pin, 3.3V logic |
7 | GPIO47 | I/O | General Purpose Input/Output pin, 3.3V logic |
8 | GPIO38 | I/O | General Purpose Input/Output pin, 3.3V logic |
9 | GPIO39 | I/O | General Purpose Input/Output pin, 3.3V logic |
10 | GPIO40 | I/O | General Purpose Input/Output pin, 3.3V logic |
11 | GPIO6 | I/O/A | General Purpose Input/Output pin capable of Analog, 3.3V logic |
12 | GPIO5 | I/O/A | General Purpose Input/Output pin capable of Analog, 3.3V logic |
13 | GPIO3 | I/O/A | General Purpose Input/Output pin capable of Analog, 3.3V logic |
14 | GPIO45 | I/O | General Purpose Input/Output pin, 3.3V logic |
15 | GPIO46 | I/O | General Purpose Input/Output pin, 3.3V logic |
16 | GPIO20* | I/O/A | N/C unless hardware mod, then General Purpose Input/Output pin capable of Analog, 3.3V logic |
17 | GPIO19* | I/O/A | N/C unless hardware mod, then General Purpose Input/Output pin capable of Analog, 3.3V logic |
18 | GPIO11* | - | N/C unless hardware mod, then General Purpose Input/Output pin, 3.3V logic |
19 | GPIO0 | I/O | Available after boot, GPIO0 is used for Programming and Boot Strapping. General Purpose Input/Output, 3.3V logic |
20 | 3.3V | P | 3.3V Output for User, connected to system 3.3V bus. Excessive draw will affect system stability. 100mA-200mA draw should be OK |
21 | GND | P | Supply Ground |
22 | EN-RST | I | Master Reset/Enable signal. Internally pulled up to 3.3V via a 10K resistor. Low will disable the chip, High will activate the chip. Used by a UART programmer for programming sequence. |
23 | U0RXD | I | Asynchronous Serial Receive pin, 3.3V TTL level. Connect this pin to the Transmit (Tx) signal of other serial devices. Used in conjunction with the U0TXD pin for UART programming. This pin is 3.3V Logic only. (GPIO44) |
24 | U0TX0 | O | Asynchronous Serial Transmit pin, 3.3V TTL level. Connect this pin to the Receive (Rx) signal of other serial devices. Used in conjunction with the U0RXD pin for UART programming. This pin is 3.3V Logic only. (GPIO43) |
25 | GND | P | Supply Ground |
26 | 5V IN | P | Main Voltage Supply +ve input pin. Reverse polarity protected. The range is 4.0V to 6.0V, nominal 5.0V. |
27 | 5V IN | P | Main Voltage Supply +ve input pin. Reverse polarity protected. The range is 4.0V to 6.0V, nominal 5.0V. |
28 | 5V IN | P | Main Voltage Supply +ve input pin. Reverse polarity protected. The range is 4.0V to 6.0V, nominal 5.0V. |
29 | 5V IN | P | Main Voltage Supply +ve input pin. Reverse polarity protected. The range is 4.0V to 6.0V, nominal 5.0V. |
30 | GND | P | Supply Ground |
Note
- I = Input, O = Output, P = Power, A = Analog Input
- It is recommended to connect 2 or more 5V IN pins to a stable 5V DC power supply, as well as 2 or more GND pins.
- Please refer to the Espressif ESP32-S3 datasheet for specific detail on the capability of the ESP32-S3 GPIO, in conjunction with the schematic of this module.
Hardware Interface - Pins
This section describes in detail the hardware interface pins of the module.
Serial Ports - 3.3V TTL Level
The gen4-ESP32 Series has a single dedicated serial UART, which is broken out to the 30-way FFC connector on this module (Pins 23 and 24). The module is capable of turning the available native GPIO into more serial UART's also, based on the functionality of the ESP32-S3 processor. Please refer to the ESP32-S3 Espressif Datasheet for more detail.
Depending on which on-board peripherals are used, multiple additional UARTS could be configured on the spare GPIO pins.
The module can be programmed over UART (rather than native USB-C) utilising the U0RXD/U0TXD pins, in conjunction with EN-RST and GPIO0.
I2C Port - 3.3V TTL Level
The gen4-ESP32 Series has 2 pins earmarked as I2C pins (Pins 2 and 3) which have pull-up resistors installed on the PCB, and the pins are available on the 30-way FFC connector, however other GPIO can be used for I2C also instead, just external pull-up resistors will be required. The earmarked pins can be utilised by the User for general purpose I2C devices, or as General Purpose IO and is not shared with any on-board components, so is free to be used as required.
SPI Port - 3.3V TTL Level
The gen4-ESP32 Series has a dedicated SPI port for the micro-SD connector, which is not otherwise accessible to the User on the 30 way FFC connector, but additional SPI buses can be set up using the spare GPIO pins to use as is required by the User.
General Purpose I/O
There are 20 general-purpose Input/Output (GPIO) pins available to the user. Many of these can be configured to be SPI, I2C and UART, amongst other configurations. Please refer to the Espressif ESP32-S3 datasheet for more specific information.
Pin Name | Digital Input | Digital Output | Analog Read | SPI-2/3 | I2C-1/2 | I2S | Pulse Counter | PWM-0/1 | UART |
---|---|---|---|---|---|---|---|---|---|
GPIO17 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO18 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO16 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO15 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO48 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO47 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO38 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO39 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO40 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO6 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO5 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO3 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
GPIO45 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO46 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO20 | Yes** | Yes** | Yes** | Yes** | Yes* | Yes* | Yes* | Yes* | Yes* |
GPIO19 | Yes** | Yes** | Yes** | Yes** | Yes* | Yes* | Yes* | Yes* | Yes* |
GPIO11 | Yes** | Yes** | Yes** | Yes** | Yes* | Yes* | Yes* | Yes* | Yes* |
GPIO0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
GPIO43 | Yes* | Yes* | Yes* | Yes* | Yes (TX) | ||||
GPIO44 | Yes* | Yes* | Yes* | Yes* | Yes (RX) | ||||
Channels | ALL | ALL | 2x ADC | 2x SPI | 2x I2C | 1x I2S | 2x P.C. | 2x PWM | 2x UART |
Note 1: GPIO marked with * are only available if the hardware is configured to do so, as by default they have other functions.
Note 2: GPIO marked with ** require hardware modifications to achieve, please refer to the Hardware Mods section for more detail.
Note 3: There are limited channels of each type of IO, all 20 GPIO's cannot be configured to all be Analog Input, or all 18 GPIO's be configured to be UART's - for example. Most GPIO pins are capable of taking on various configurations however.
Please refer to the Espressif ESP32-S3 datasheet and Technical Reference Manual for information on how to configure the GPIO for various functions, such as DI/DO, AO, I2C, UART and SPI, etc.
- GPIO17
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO18
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO16
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO15
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO48
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO47
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO38
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO39
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO40
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO6
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO5
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO3
-
General purpose I/O pin, capable of Digital Input and Output, along with Analog Input. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO45
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO46
-
General purpose I/O pin, capable of Digital Input and Output. This pin is 3.3V tolerant only and 3.3V logic level. Can be configured for additional functionality such as SPI, I2C, UART etc. - please refer to Arduino-ESP32 documentation or ESP-IDF documentation.
- GPIO20
-
By default, this pin is not available to the User, and is not hardware connected to the 30-way FFC connector. By default, this pin is used by the native USB-C port (USB D+). This can however be configured to be connected to the 30-way FFC connector if the USB-C port is not required. When modified in hardware (refer to the Hardware Mods section), this pin is a General Purpose I/O pin and can be utilised for Digital Input and Output, as well as Analog Input, amongst other native functionality. This pin is 3.3V tolerant only and 3.3V logic level.
- GPIO19
-
By default, this pin is not available to the User, and is not hardware connected to the 30-way FFC connector. By default, this pin is used by the native USB-C port (USB D-). This can however be configured to be connected to the 30-way FFC connector if the USB-C port is not required. When modified in hardware (refer to the Hardware Mods section), this pin is a General Purpose I/O pin and can be utilised for Digital Input and Output, as well as Analog Input, amongst other functionality. This pin is 3.3V tolerant only and 3.3V logic level.
- GPIO11
-
By default, this pin is not available to the User, and is not hardware connected to the 30-way FFC connector. By default, this pin is used for the RESET of the Touch Panel. This can however be configured to be connected to the 30-way FFC connector if this functionality is not required. When modified in hardware (refer to the Hardware Mods section), this pin is a General Purpose I/O pin and can be utilised for Digital Input and Output, as well as Analog Input, amongst other functionality. This pin is 3.3V tolerant only and 3.3V logic level.
- GPIO0
-
Available after boot, GPIO0 is used for Programming via UART and for Boot Strapping. It can be used as a standard GPIO pin after boot, and is 3.3V tolerant only and 3.3V logic level. At start up, this pin must be pulled-up or allowed to float taking into account the weak internal pull-up (as is the default of this GPIO), which sets the boot up of the ESP32-S3 to be in SPI mode. This pin must not be pulled down externally during system boot, or the module will not boot correctly. This pin is also used by the UART Programmer (if utilised) which changes the boot mode into Download mode at the appropriate time. It is best to leave this pin unused where possible if it is not fully understood. Please refer to the Espressif documentation for more detail.
- GPIO43
-
GPIO43 is used typically as the primary UART, TX pin. If a UART is not required on this pin, then it can be used for GPIO instead. It is capable of Digital Input and Output only. It is 3.3V tolerant only and 3.3V logic level.
- GPIO44
-
GPIO44 is used typically as the primary UART, RX pin. If a UART is not required on this pin, then it can be used for GPIO instead. It is capable of Digital Input and Output only. It is 3.3V tolerant only and 3.3V logic level.
System Pins
- 5V IN (Module Voltage Input):
-
Module supply voltage input pins. At least two (however ideally four) of these pins should be connected to a stable supply voltage in the range of 4.0 Volts to 5.5 Volts DC. Nominal operating voltage is 5.0 Volts. Utilising 4 pins shares the current over the FFC cable, which is important for the larger size displays.
- GND (Module Ground):
-
Device ground pins. At least two (ideally four) pins should be connected to the ground.
- EN-RST (Module Enable/Disable/Reset):
-
This pin is connected to a 10K pull-up resistor, which is pulling the module to the enabled state by default. Pulling this pin to 0V will disable the module, and put it into a reset state. Pulling the pin High or floating (due to build in pull-up resistor) will enable the module. This pin is utilised when utilising the UART Programming method.
Accessing Other GPIO Pins - Hardware Mods Required
- GPIO19
-
GPIO19 by default is USB-D-, part of the USB+/USB- combination for the Native USB-C port.
-
If there is no desire to utilise the onboard USB-C connector, or an external extension is going to be made utilising the 30-way FFC connector, or the pins are desired to be GPIO, it is possible to achieve with a small hardware modification. In order to access this pin on the 30-way FFC, a resistor needs to be removed (R26) and another needs to be added (R22) or a simple solder blob will suffice in this position.
-
If this is going to be a required modification for your end-product, and it will be used in a production application, it is possible to request 4D Systems to move this by default when you order the product. Please contact our Sales team with your requirements.
- GPIO20
-
GPIO20 by default is USB-D+, part of the USB+/USB- combination for the Native USB-C port.
-
If there is no desire to utilise the onboard USB-C connector, or an external extension is going to be made utilising the 30-way FFC connector, or the pins are desired to be GPIO, it is possible to achieve with a small hardware modification. In order to access this pin on the 30-way FFC, a resistor needs to be removed (R25) and another needs to be added (R23) or a simple solder blob will suffice in this position.
-
If this is going to be a required modification for your end-product, and it will be used in a production application, it is possible to request 4D Systems to move this by default when you order the product. Please contact our Sales team with your requirements.
- GPIO11
-
By default, this pin is not available to the User, and is not hardware connected to the 30-way FFC connector. By default, this pin is connected to the Touch Panels RESET pin.
-
If there is no requirement for touch (ie you have a non-Touch module), or this pin is required, and you plan on modifying the code/library to not utilise this pin, it can be redirected to the 30-way FFC by removing resistor R9, and adding it back into the position of Resistor R8 (or simply placing a solder blob).
-
If this is going to be a required modification for your end-product, and it will be used in a production application, it is possible to request 4D Systems to move this by default when you order the product. Please contact our Sales team with your requirements.
Module Features
The gen4-ESP32 Series is designed to accommodate a wide variety of applications. Some of the main features of the module are listed below.
ESP32-S3R8 Processor
The module is designed around the ESP32-S3R8 Processor from Espressif. This model of ESP32-S3 has 8MB of build in Octal SPI PSRAM, and utilises External Quad SPI Flash for application storage. Media is typically stored on a micro-SD card, however some types of media can be stored in SPI Flash, however it is very limited for capacity.
Chipsets used
The gen4-ESP32 Series of modules utilises a few chipsets from various manufacturers, in order for these modules to operate. Please refer to the Schematic for connection details.
- The main processor is an Espressif ESP32-S3R8, as mentioned in the previous section.
- For Capacitive Touch models, the chipset for the capacitive touch is I2C driven, and the chipset is found on the Display flex itself. These utilise Focaltech controllers for 2.4", 2.8", 3.2" and 3.5" models.
- The Quad SPI Flash memory used on these modules, is the Giga-Devices GD25Q127C, which is 16MB in capacity, and interfaces to the ESP32-S3 on the same Octal/Quad SPI bus as the PSRAM which is built into the ESP32-S3R8 chipset itself.
- The micro-SD card interface, while not a chipset, is still worthy of note. It utilises a dedicated 1-bit SPI bus from the ESP32-S3, which can be shared with the User if required. The micro-SD cards used must be SPI compatible due to the interface type - more detail below.
SD/SDHC Memory Cards
The gen4-ESP32 modules use off-the-shelf standard SDHC/SD/microSD memory cards with up to 4GB capacity usable with FAT16 formatting, and much higher with FAT32 formatting. For any FAT file-related operations, before the memory card can be used it must first be formatted. The formatting of the card can be done on any PC system with a card reader.
Cards with a FAT16 formatting (4GB or under partition) are capable of operating faster on this display module, compared to the same card (16GB for example) with a single FAT32 partition, due to the nature of FAT16 vs FAT32 file transfers. If your application media can fit inside a 4GB partition, it is recommended to use FAT16 to gain the maximal speed possible.
RMPET, a 4D Systems Tool found in the Workshop4 IDE, is capable of repartitioning and formatting microSD cards for FAT16, to be the appropriate type and format. This tool should be used for all cards as it also employs an offset which is critical when using Industrial microSD cards which feature Read Disturb Prevention firmware, which is a special firmware inside the microSD card designed to prevent Read Disturb occurring on NAND based Flash media. Further, discussed in the note.
Note
- An SPI Compatible SDHC/SD/microSD card MUST be used. The gen4-ESP32 modules requires SPI mode to communicate with the SD card. If a non-SPI compatible SD card is used, then the processor will not be able to mount the card.
- Read disturbance is a well-known issue with flash memory devices, such as microSD cards, where reading data from a flash cell can cause the nearby cells in the same memory block to change over time. This issue can be prevented by using industrial-grade microSD cards with read disturb protection. Industrial-grade microSD cards have firmware that actively monitors the read operation and refreshes areas of memory that have high traffic and even move data around to prevent read disturb error from occurring. Furthermore, manufacturers may choose to implement read disturb protection on a specific part of the flash memory only, such that the beginning part of the memory might not be protected. The RMPET utility in Workshop4 is designed to create the first partition at an offset from the start of the microSD card to account for this situation. It is therefore recommended to always partition and format an industrial microSD card using the RMPET utility before using it with 4D Systems modules. Many commercial grade cards designed for Cameras etc, do not handle read disturb well at all, and therefore it is always recommended to use an Industrial grade microSD card with 4D modules. 4D offers one that is tried and tested, on our website.
microSD Socket Usage
On the 2.4" to 3.5" gen4-ESP32 modules is a Push-Pull microSD socket. The microSD card sits above the component level. To use this socket is simple if you follow these easy steps.
- Position the microSD card in line with the microSD socket, above the components.
- Push the microSD card into the socket, until it slides all the way in.
Please refer to the following animation for guidance:
Please refer to the following diagram for guidance:
FAT16 vs FAT32
FAT16 is capable of having a partition with up to 4GB capacity usable. While this might seem like a limitation, it still offers the best performance for small processor systems such as the ESP32-S3. Larger partitions are possible with FAT32 formatting, however smaller cluster size results, giving slightly worse performance.
For any FAT file-related operations, before the memory card can be used it must first be formatted correctly. Built into Workshop4 is a tool created by 4D, called RMPET (please refer to the Tools menu, in any Environment, inside the Workshop4 IDE). RMPET allows the User to easily partition and format microSD cards, to make their file system ready to be used with 4D Systems modules. The formatting of the card can be done on any Windows PC system with a card reader.
Display/Module Precautions
- Avoid having to display the same image/object on the screen for lengthy periods. This can cause a burn-in which is a common problem with all types of display technologies. Blank the screen after a while or dim it very low by adjusting the contrast. Better still; implement a screen saver feature.
- Moisture and water can damage the display. Moisture on the surface of a powered display should not cause any problems, however, if water is to enter the display either from the front or from the rear, or come in contact with the PCB, it will damage. Wipe off any moisture gently or let the display dry before usage. If using this display module in an environment where it can get wet, ensure an appropriate enclosure is used.
- Dirt from fingerprint oil and fat can easily stain the surface of the display. Gently wipe off any stains with a soft lint-free cloth.
- The performance of the display will degrade under high temperatures and humidity. Avoid such conditions when storing.
- Do not tamper with the display flex cable that is connected to the control board. This may affect the connection between the display and the driving circuitry and cause failure.
- Displays are susceptible to mechanical shock and any force exerted on the module may result in deformed zebra stripes, a cracked display cell and a broken backlight.
- Always use the mounting holes on the module's to mount the display where possible, or mount using the CLB for CLB based modules.
- Display modules have a finite life, which is typically dictated by the display itself, more specifically the backlight. The backlight contains LEDs, which fade over time. In the Specifications section is a figure for the typical life of the display, and the criteria are listed. The resistive Touch model features a touch-sensitive film over the display which is sensitive to pressure. When mounting the display module in an enclosure, you should not apply pressure to the surface of the display by the enclosure. It could result in false touches or the touch will simply not function at all.
Hardware Tools
The following hardware tools are required for full control of the gen4-ESP32 Display Modules.
4D-UPA
The 4D-UPA minimizes the connections and modules required for programming the gen4-ESP32 series via its UART - creating a single module with a micro USB interface, and DIP style pads for GPIO breakout of all the signals used on the gen4 Display interface, which is useful for development or final product use.
The GPIO naming convention on the 4D-UPA does not reflect the GPIO naming of the actual display module, due to the 4D-UPA being universal and able to be used with many 4D Products. Please review the 4D-UPA datasheet for information on mapping the GPIO naming from this module, with the GPIO naming on the 4D-UPA, to ensure you connect to the correct pins you desire.
Typically, a 4D-UPA should not be required for programming the gen4-ESP32 series of modules, as they have USB-C on board, however if problems occur or situations arise that the USB-C is non-functional, then the 4D-UPA would be required, so it is a good tool to have on hand.
The 4D-UPA is connected to the ESP32 module using the supplied 30-way FFC Cable. The connectors on both the ESP32 module, and the 4D-UPA, are Top-Contact, meaning the FFC cable pins should be facing upwards, and the blue stiffener, should be facing down towards the PCB.
Note
- 4D-UPA REV 1.4 or higher is required to program a ESP32 processor via the 30-way interface. Any version earlier than REV 1.4 will not work for programming ESP32 based products. Please be sure to refer to the 4D-UPA Datasheet.
- If using the 4D-UPA, only the supplied FFC cable (or same type) can be used. The type of cable supplied, as described in the FFC Cable section, is an Opposite type (contacts on opposite sides to each other at end end). If a straight cable (contacts on the same side at both ends) is sourced, this will NOT work when connecting to the 4D-UPA, as the connections will be swapped. Please refer to the information provided for more detail.
USB-C Cable
A USB-C Cable is the primary way to program a gen4-ESP32 module from 4D Systems, aside from using a 4D-UPA, as described previously.
A USB-C cable is not supplied with the modules, as they can be sourced from any computer or hardware store, and come with most Cell Phones these days too.
Connection of the USB-C cable to the module is simple, and simply plugs into the USB-C connector on the board, clearing the gen4 plastics on the side.
The USB-C provides power as well as USB Data communications, for while developing software on the module and programming it. The USB-C cable can be used in the end product use if desired, or the use of the FFC-Cable directly to the projects main Application PCB as an alternative.
Workshop4 IDE
Workshop4 is a comprehensive software IDE that provides an integrated software development platform for all the 4D family of processors and modules, as well as some 3rd party processors such as the Espressif ESP32.
The IDE provides an Editor and WYSIWYG design area for gen4-ESP32 based modules, to develop complete application code with various widgets and media references as required. All user application code is developed within the Workshop4 IDE, and is easily coupled with graphics and media, so is a one-stop shop for development with these modules.
The Workshop4 IDE utilises the Arduino IDE 2.x CLI to handle the compiling, linking and downloading of ESP32 based projects, using the ESP32 Arduino Core and associated libraries, without having to interface with the Arduino IDE at all.
Note
Arduino IDE 2.x and Arduino CLI is not included when installing Workshop4 and must be installed separately.
For complete development setup instructions, please refer to the Workshop4 ESP32 Development Manual
Tools available inside the Workshop IDE
Built into Workshop4 are a number of tools which are available to aid the programming of the gen4-ESP32 series of displays.
Terminal, as the name implies, is a terminal application that can be used to communicate with the display module and is primarily used for basic debugging. It displays incoming Serial messages from the display module in ASCII and HEX format. It is capable of sending character or hex strings as well as keystrokes to the display.
RMPET is a partitioning and formatting tool, used to correctly set up a micro-SD card for use with 4D Systems products. This is further discussed in the SD/SDHC Memory Cards section
Programming Language
The programming language used in the Workshop4 IDE to program the gen4-ESP32 series of modules, is C++, which is the same as native Arduino IDE written code.
The Arduino programming language is a user-friendly coding system tailored for Arduino microcontrollers. It simplifies microcontroller coding, bridging the gap between users and hardware. Its approachability and community support make it ideal for various projects.
Display Module Part Numbers
The following is a breakdown of the part numbers and what they mean.
Example:
- gen4-ESP32-24
- gen4-ESP32-32CT-CLB
Example Starter Kits
- SK-gen4-ESP32-24
- SK-gen4-ESP32-32CT-CLB
where:
SK - Starter Kit (kitting of multiple parts)
gen4 - gen4 Display Range
ESP32 - ESP32 Display Family
24 - Display size (2.4")
28 - Display size (2.8")
32 - Display size (3.2")
35 - Display size (3.5")
CT - Capacitive Touch
CLB - Cover Lens Bezel
Note
- The SK at the start denotes it’s a Starter Kit, and the rest of the part number describes the display module in the Starter Kit.
- A product without a T or CT in the part number is a non-touch variant.
- Cover Lens Bezels (CLB) are glass fronts for the display module with overhanging edges, which allow the display module to be mounted directly into a panel using special adhesive on the overhanging glass. This is available for capacitive touch only.
Cover Lens Bezel - Tape Spec
The perimeter of the CLB display modules features double-sided adhesive tape, designed to stick directly onto a panel, enclosure, box etc. without the need for any mounting screws or hardware.
The tape used is 3M 9495LE tape, which uses well-known and strong 3M 300LSE adhesives. The double-sided adhesive has a thickness of 0.17mm once the backing has been removed.
More information on this adhesive can be found on the 3M website.
FFC Cable
The FFC cables supplied by 4D Systems (included with products) have the following specifications:
- 30 Pin Flexible Flat Cable, 150mm Long, 0.5mm (0.02") pitch
- Cable Type: AWM 20624 80C 60V VW-1
- Heat Resistance 80 Degrees Celsius
- Connections on the opposite side at each end (Type B)
You can get different cable lengths from the 4D Systems website.
Note
If you are interfacing with this module directly to your product via the 30-way FFC rather than utilising a breakout board or 4D-UPA, suitable connectors are readily available from many electronics suppliers, such as Digikey, Mouser, Farnell, RS, etc.
A standard 30-pin, 0.5mm pitch, 0.3mm thick FFC, FFC connector. They are available in Top Contact and Bottom Contact, so depending how you orientate the cable on your product, will determine which one you need. Please however take care of the pinout and how it flows from the display module, through the FFC and into your product, to ensure Pin1 and Pin30 are where you expect them to be.
Starter Kit
4D Systems highly recommends all first-time buyers of 4D Systems’ displays, to purchase the Starter Kit when purchasing their first 4D Systems display solution.
The Starter Kit provides all the hardware that is required to get the User up and running.
Starter Kits typically include:
- gen4 ESP32 Display Module
- gen4 Breakout Board (gen4-Breakout)
- 4D Universal Programming Adaptor (4D-UPA REV1.4 or higher)
- 4GB micro-SD Card
- 150mm 30-way FFC cable for connecting display to gen4-Breakout, 4D-UPA, or Users System
- Wi-Fi Antenna (u.FL to SMA, and screw on SMA antenna)
Please refer to the 4D Systems website for the current components included in the Starter Kit.
Simply select the Starter Kit option when purchasing the chosen display module on the 4D Systems shopping cart, or from your local distributor.
Specifications
Absolute Maximum Ratings
Operating ambient temperature | -20°C to +65°C (see note 1 and 2) |
Storage temperature | -30°C to +80°C |
Voltage on any digital input pin (ESP32) with respect to GND | -0.3V to 3.6V |
Voltage on any digital input pin (IO Expander) with respect to GND | -0.3V to 6.0V |
Voltage on VCC with respect to GND | -0.3V to 6.5V |
Note
-
Quote Espressif
"Ambient temperature specifies the recommended temperature range of the environment immediately outside an Espressif chip. For ESP32-S3R8 if the PSRAM ECC function is enabled, the maximum ambient temperature can be improved to 85°C, while the usable size of PSRAM will be reduced by 1/16"
- Temperature range for Ambient and Storage, are determined by a combination of components used on these modules. While some components may be capable of exceeding these temperatures, some are not, so the minimums/maximums are determined by the weakest device on the modules. Based on the 65°C/85°C note above, if the ESP32-S3R8 is increased to 85°C capability, the next 'weakest' component on the module is the TFT LCD, which is capable of -20°C to 70°C Operating Temp.
-
Stresses above those listed here may cause permanent damage to the device. This is for stress rating only and functional operation of the device at those or any other conditions above those indicated in the recommended operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Recommended Operating Conditions
Parameter | Conditions | Min | Typ | Max | Units |
---|---|---|---|---|---|
Supply Voltage (VCC) | Stable external supply required | 4.0 | 5.0 | 6.0 | V |
Processor voltage (VP) | -- | 3.3 | -- | V | |
Input Low Voltage (VIL) | all pins | 0 | -- | 0.25VP | V |
Input High Voltage (VIH) | all pins | 0.8VP | -- | 5.5 | V |
Global Characteristics Based on Operating Conditions
Parameter | Conditions | Min | Typ | Max | Units |
---|---|---|---|---|---|
Supply Current (ICC) *** | gen4-ESP32-24 (Contrast = 15) | -- | 149 | -- | mA |
gen4-ESP32-24CT (Contrast = 15) | -- | 150 | -- | mA | |
gen4-ESP32-24CT-CLB (Contrast = 15) | -- | 150 | -- | mA | |
gen4-ESP32-28 (Contrast = 15) | -- | 149 | -- | mA | |
gen4-ESP32-28CT (Contrast = 15) | -- | 150 | -- | mA | |
gen4-ESP32-28CT-CLB (Contrast = 15) | -- | 150 | -- | mA | |
gen4-ESP32-32 (Contrast = 15) | -- | 188 | -- | mA | |
gen4-ESP32-32CT (Contrast = 15) | -- | 190 | -- | mA | |
gen4-ESP32-32CT-CLB (Contrast = 15) | -- | 190 | -- | mA | |
gen4-ESP32-35 (Contrast = 15) | -- | 183 | -- | mA | |
gen4-ESP32-35CT (Contrast = 15) | -- | 184 | -- | mA | |
gen4-ESP32-35CT-CLB (Contrast = 15) | -- | 184 | -- | mA | |
Display Endurance | Hours of operation, measured to when display is 50% original brightness | 30000 | -- | -- | H |
Touch Screen Transparency | Capacitive Touch | 90 | -- | -- | % |
CLB Hardness | Cover Lens Bezel Glass Hardness | -- | 6 | -- | H |
Note
Typical Supply Current (ICC) figures are without WiFi enabled, without microSD card inserted, and using simple display operations only. Any additional load such as GPIO sourcing, WiFi etc, will increase this figure. This is a Typical figure only, not a Maximum.
LCD DISPLAY INFORMATION (TN DISPLAY)
Parameter | Conditions | Specification |
---|---|---|
Display Type | TN - TFT Transmissive LCD | |
Display Size | 3.2" Diagonal | |
Display Resolution | 240 x 320 (Portrait Viewing) | |
Display Brightness | gen4-ESP32-32 (Contrast = 15) | 200 cd/m2 |
gen4-ESP32-32CT (Contrast = 15) | 190 cd/m2 | |
gen4-ESP32-32CT-CLB (Contrast = 15) | 190 cd/m2 | |
Display Contrast Ratio | Typical | 250:1 |
Display Viewing Angles | Above Centre | 35 Degrees |
Below Centre | 55 Degrees | |
Left of Centre | 55 Degrees | |
Right of Centre | 55 Degrees | |
Display Viewing Direction | 6 O'clock Display (Optimal viewing is from below when in Portrait mode) | |
Display Backlighting | White LED Backlighting | 1x6 Parallel LED's |
Pixel Pitch | 0.2025 x 0.2025mm (Square pixels) | |
Pixel Density | Number of pixels in 1 row in 25.4mm1 | 127 DPI/PPI |
LCD DISPLAY INFORMATION (IPS DISPLAY)
Parameter | Conditions | Specification |
---|---|---|
Display Type | IPS - TFT Transmissive LCD | |
Display Size | 2.4" Models | 2.4" Diagonal |
2.8" Models | 2.8" Diagonal | |
3.5" Models | 3.5" Diagonal | |
Display Resolution | 2.4" and 2.8" Models | 240 x 320 (Portrait Viewing) |
3.5" Models | 320 x 480 (Portrait Viewing) | |
Display Brightness | gen4-ESP32-24 (Contrast = 15) | 320 cd/m2 |
gen4-ESP32-24CT (Contrast = 15) | 300 cd/m2 | |
gen4-ESP32-24CT-CLB (Contrast = 15) | 300 cd/m2 | |
gen4-ESP32-28 (Contrast = 15) | 300 cd/m2 | |
gen4-ESP32-28CT (Contrast = 15) | 280 cd/m2 | |
gen4-ESP32-28CT-CLB (Contrast = 15) | 280 cd/m2 | |
gen4-ESP32-35 (Contrast = 15) | 320 cd/m2 | |
gen4-ESP32-35CT (Contrast = 15) | 295 cd/m2 | |
gen4-ESP32-35CT-CLB (Contrast = 15) | 295 cd/m2 | |
Display Contrast Ratio | Typical (2.4", 2.8") | 800:1 |
Typical (3.5") | 1000:1 | |
Display Viewing Angles | Above Centre | 80 Degrees |
Below Centre | 80 Degrees | |
Left of Centre | 80 Degrees | |
Right of Centre | 80 Degrees | |
Display Viewing Direction | ALL (wide viewing IPS Display) | |
Display Backlighting | 2.4" and 2.8" Models | 1x4 Parallel LED's |
3.5" Models | 1x6 Parallel LED's | |
Pixel Pitch | 2.4" Models | 0.153 x 0.153mm (Square pixels) |
2.8" Models | 0.180 x 0.180mm (Square pixels) | |
3.5" Models | 0.153 x 0.153mm (Square pixels) | |
Pixel Density | Number of pixels in 1 row in 25.4mm, 2.4” | 166 DPI/PPI |
Number of pixels in 1 row in 25.4mm, 2.8” | 141 DPI/PPI | |
Number of pixels in 1 row in 25.4mm, 3.5” | 166 DPI/PPI |
Note
Relevant for all TN and IPS displays, the Displays used are of the highest rated 'Grade A', which allows for 0-4 defective pixels.
A defective pixel could be solid Black (Dead), White, Red, Green or Blue.
Revision History
Datasheet Revision
Revision Number | Date | Description |
---|---|---|
0.1 | 25/05/2023 | Internal Use Only |
1.0 | 12/09/2023 | Initial Public Release Version |
1.1 | 12/06/2024 | Table and paragraph formatting changes Added missing GPIO 45 and 46 descriptions Fixed link to datasheet and API references |
Hardware Revision
Revision Number | Date | Description |
---|---|---|
1.0 | 17/04/2023 | Initial Public Release Version |