Skip to content

gen4-IoD Display Modules


The gen4-IoD (Internet of Displays) series is part of the latest gen4 Range of modules Designed and Manufactured by 4D Systems.

The gen4 series was designed specifically for ease of integration and use, with careful consideration for space requirements and functionality.

This specific gen4 module features a 2.4", 2.8" or 3.2" colour TFT LCD, with Resistive Touch. It is powered by the WiFi-enabled ESP8266, which offers an array of functionality and options for any Designer / Integrator / User.

The gen4-IoD range can be easily programmed using 4D Systems Workshop4 or the Arduino IDE installed with the ESP8266 core. The feature-rich 4D Systems GFX4d library enables speedy development of applications by providing extensive primitive graphics functions, enhanced graphics via Workshop4, SD card and touch routines, integrated into a single library. This is compiled by the Arduino IDE in the background, and loaded onto the module.

The onboard SD card socket enables the use of FAT16 or FAT32 formatted cards for extensive storage capabilities.

The gen4-IoD series of Integrated Display Modules features a 10-pin ZIF socket, designed for a 10-pin FFC cable, for easy and simple connection to an application or mother board, or for connecting to accessory boards for a range of functionality advancements.

The gen4 series of modules has been designed to minimise the impact of display-related circuitry and provide a platform suitable for integration into a product. Application boards can sit flush on the back of the gen4 if required, as the display-related electronics sit inside the plastic mounting base, leaving the application board surface clear for User circuitry.

More information on the Espressif ESP8266 SoC can be found on the Espressif website, and on the ESP8266EX SoC datasheet


  • Powerful Intelligent LCD-TFT display module powered by the Espressif ESP8266 SoC.
  • 320 x 240 Resolution, RGB 65K true to life colours, TFT Screen with integrated 4-wire Resistive Touch Panel.
  • Built-in WiFi is suitable for Internet of Things applications.
  • 802.11 b/g/n/e/i support
  • Integrated TCP/IP protocol stack
  • WiFi 2.4 GHz, supporting WPA/WPA2 and WEP/TKIP/AES, along with STA/AP/STA+AP/P2P operation modes
  • 4Mbit (512kb) of Flash memory (modules produced before July 2020) or 16Mbit (2MB) of Flash memory (modules produced July 2020 or after) for User Application Code and Data.
  • 128Kb of SRAM of which 80kb is available for the User.
  • 10pin FPC connection, for all signals, power, communications and programming.
  • Onboard latch-type microSD memory card connector for multimedia storage and data logging purposes.
  • DOS-compatible file access (FAT16 or FAT32 format).
  • Display full-colour images, animations, and icons.
  • 4.0V to 5.5V range operation (single supply). A 1Amp+ supply is highly recommended for stability.
  • 4x mounting tabs with 3.2mm holes for mechanical mounting using M3 screws.
  • RoHS, REACH and CE compliant. Note modules have not been tested nor passed EMC testing.
  • Module dimensions:
    • 2.4" - 78.4 x 44.8 x 7.2mm
    • 2.8" - 87.3 x 52.1 x 7.3mm
    • 3.2" - 95.7 x 57.1 x 7.5mm
  • Weighing:
    • 2.4" - ~ 26g
    • 2.8" - ~ 36g
    • 3.2" - ~ 44g


Arduino is a trademark of the Arduino Team, and all references to the word "Arduino" or the use of its logo/marks are strictly about the Arduino product, and how this product is compatible with the aspect of the product but is not associated with the Arduino Team in anyway.

ESP8266 / ESP8266EX are products made by Espressif. 4D Systems is not associated with Espressif in anyway, other than using their product inside of ours.

Hardware Overview

Hardware Overview

USER I/O - 10 Way FPC

Pin Conditions I/O Description
1 GND P Supply Ground.
2 GND P Supply Ground.
3 RESET I Master Reset signal. Internally pulled up to 3.3V via a 10K resistor. An active Low pulse greater than 2 micro-seconds will reset the module. If the module needs to be reset externally, only use open collector-type circuits. This pin is not driven low by any internal conditions. The host should control this pin via one of its port pins using an open collector/drain arrangement.
4 GPIO I/O I/O pin. This pin is used for backlight control and flash programming
5 RX I Asynchronous Serial Receive pin, TTL level. Connect this pin to the Transmit (Tx) signal of other serial devices. Used in conjunction with the TX pin for programming this module. This pin is tolerant up to 3.3V levels.
6 TX I Asynchronous Serial Transmit pin, TTL level. Connect this pin to the Receive (Rx) signal of other serial devices. Used in conjunction with the RX pin for programming this module. This pin outputs 3.3V levels.
7 GND P Supply Ground.
8 GPIO16 GPIO16 I/O pin. Can be used as digital input or output. Can also be used for PWM and 1-wire device interfacing. This pin is available to the user. This pin is tolerant up to 3.3v levels.
9 5V IN P Main Voltage Supply +ve input pin. Range is 4.0V to 5.5V, nominal 5.0V
10 5V IN P Main Voltage Supply +ve input pin. Range is 4.0V to 5.5V, nominal 5.0V


I = Input, O = Output, P = Power

Hardware Interface - Pins

This section describes in detail the hardware interface pins of the device.

Serial Ports - TTL Level Serial

The ESP8266 Processor has hardware asynchronous serial ports that can be accessed via the 10-way FPC or the gen4-Iod-programmer. The serial port can be used to communicate with external serial devices.

The primary features are:

  • Full-Duplex 8-bit data transmission and reception.
  • Data format: 8 bits, No Parity, 1 Stop bit.
  • Independent Baud rates from 300 baud up to 921600 baud.
  • Single byte transmits and receives a fully buffered service. The buffered service feature runs in the background capturing and buffering serial data without the user application having to constantly poll any of the serial ports. This frees up the application to service other tasks.

A single-byte serial transmission consists of the start bit, 8 bits of data followed by the stop bit. The start bit is always 0, while a stop bit is always 1. The LSB (Least Significant Bit, Bit 0) is sent out first following the start bit. The figure below shows a single-byte transmission timing diagram.

Single byte

The serial port is also the primary interface for User program downloads, and configuration via the IDE.

System Pins

+5V IN (Module Voltage Input):

Module supply voltage input pins. Both of these pins should be connected to a stable supply voltage in the range of 4.0 Volts to 5.5 Volts DC. The nominal operating voltage is 5.0 Volts. Note backlight brightness will be dimmer for voltages under 5.0V.

GND (Module Ground):

Device ground pins. Both pins should be connected to the ground.

RESET (Module Master Reset):

Module Master Reset pin. An active low pulse of greater than 2μs will reset the module. Internally pulled up to 3.3V via a 10K resistor. Only use open collector-type circuits to reset the device if an external reset is required.

GPIO0 (Backlight/Flash):

This pin is dedicated to both backlight control and the Flashing of the IoD program memory via the programming software. This pin must be left floating at power-up to enable the ESP8266 to boot correctly. If GPIO0 is set to be an input in User code once the ESP8266 has booted, then this pin could be controlled externally to adjust backlight brightness using PWM or simple on/off control. Else, the backlight can be controlled from the ESP8266 itself, with the appropriate User code.

GPIO16 (User GPIO):

Input/Output available to the user. This pin can be used as a digital input or digital output to connect to sensors, relays etc. This pin can also be used for '1-wire' protocol devices and as a PWM output.

SPI - (Used internally)

There is 1 hardware SPI channel (HWSPI) that is dedicated to driving the screen, SD card and Resistive Touch. The SPI channel can communicate at speeds up to 80 MHz. The SPI channel is Master only, and cannot be configured to be a slave at this time, nor is it available for the User externally.


The SPI channel (HWSPI) is dedicated to the memory card, screen and touch controller. The HWSPI channel cannot be reconfigured for alternate uses.

ESP8266 SoC

The module is designed around the ESP8266 SoC from Espressif.

The ESP8266 is a 32-bit RISC Microcontroller with a built-in WiFi controller, and GPIO capability, however, most GPIO is used for onboard features, such as the TFT LCD, Touch Controller and microSD card.

The TFT-LCD display interfaces to the ESP8266 using SPI, along with the microSD card and touch controller. This enables high-speed transfers for these peripherals, providing fast graphics, fast SD card access and responsive touch control.

Powerful graphics, text, images, animation, internet access and countless more features are available to the user via the 4D Systems GFX4d library and 4D Systems Workshop4 IDE. Alternatively, the Arduino IDE can be used, and the User can write drivers/software for the module as they require.

SD/SDHC Memory Cards

The gen4-IoD module supports microSD memory cards via the onboard latch-type micro-SD connector.

SD/SDHC memory cards

The memory card is used for all multimedia file retrieval such as images, animations and data files.

The memory card can also be used as general-purpose storage for data logging applications.

Support is available for off-the-shelf high-capacity HC memory cards (4GB and above). Memory cards up to 32GB in size can be used, such as FAT16 or FAT32, however, it must be noted that only a portion of this can be used by the FAT16 file system.

FCC Cable

The Standard FFC cable supplied has the following specifications:

  • 10 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)

Application PCB Support

The gen4-IoD Display Module Series is designed to accommodate a range of applications, and therefore is suited for those wanting to make a customised module, without the need for piggyback or daughter boards mounted on headers.

On the back of the gen4 module, the display-related circuitry will be found, which is recessed into plastic. The level of the plastic on the back of the gen4 module is higher than the tallest component on the display circuit PCB, meaning an Application PCB can be mounted on the back of the gen4, without affecting the display-related circuitry. An application board can be made it fit inside the corner notches of the gen4 plastics.



The 10-way FFC flex cable can come out of the gen4 display module and into the application board, either by coming up through a slot in the Users application board or by traveling along the channel in the gen4 plastic and emerging at the edge of the display module then curving around into the Users application board.

The microSD socket is a latch type, so it is accessible from the top, rather than a push/push or push/pull style which is accessible from the side. A slot can be routed in the Users application board so this is accessible if required.

If an external antenna is being used, the antenna can also run down the plastic channel next to the 10-way FFC cable, not affecting the User's Application Board, if fitted.

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 corner plates to mount the display where possible.
  • 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. Take note when mounting the display module in an enclosure that pressure is not applied to the surface of the display by the enclosure, false touches will occur, or the touch will simply not function at all.

Hardware Tools

The following hardware tools are required for full control of the gen4 IoD Display Modules.

Programming Adaptor

The 4D Systems Universal Programming Adaptor (4D-UPA) is an essential hardware tool to program, customise and test the gen4-IoD Display Module.

The 4D - UPA is used to program the IoD via Workshop4 and the Arduino IDE. It even serves as an interface for communicating serial data to the PC.

Programming Adaptor

Refer to the 4D-UPA datasheet for more information.

Please note, the 4D-UPA can be used as a simple interface to power the IoD or to connect to other serial devices.

The 4D - UPA features an Auto-Reset circuit (credit - NodeMCU), but also features Reset and Flash buttons, for flexibility.

Alternatively, other programming devices could be used, including programming from a host controller. Please refer to the ESP8266 datasheet for more programming options for this SoC.

Internal / External Antenna

The gen4-IoD is capable of using either the onboard ceramic chip antenna or using an external antenna connecting using the U.FL connector on the PCB.

By default, the onboard ceramic chip antenna is used, and SB2 (Solder Bridge 2) is shorted, enabling contact of the LBA pin to the ceramic chip antenna.

If the external antenna is desired instead, SB1 (Solder Bridge 1) needs to be shorted, using a small blob of solder via a soldering iron, and SB2 needs to be de-soldered. SB2 'can' be left connected if required, however, WiFi performance may be impeded to some degree, due to two antennas being connected at the same time, however, it should still work in most situations.

Internal / External Antenna

FCC Cable Orientation

The 10-way FFC cable connects to the gen4-IoD and the 4D-UPA, in the same way. Both feature Bottom Contact FFC connectors, meaning the FFC cable connects to the board with the contacts facing down, and the blue side facing up.



Programming the IoD

There are two IDEs available to program the IoD. Using the Arduino IDE, or using the 4D Systems Workshop4 IDE.

Using the Workshop4 IDE provides additional graphical benefits over using the Arduino IDE, however, the Worskhop4 IDE is only Windows-based (unless via a Virtual Machine).

If using the Workshop4 IDE, Workshop4 installation will call the Arduino IDE in the background for programming the board (handled automatically and invisibly). Some minor setup is required to install the board into the Arduino IDE, using the Board Manager and installing the JSON file. See the following section.

If the Workshop4 IDE is not going to be used at all, then the IoD board needs to be added to the Arduino IDE in the same way, using the Arduino Board Manager. More details are below.

Arduino IDE

The gen4-IoD is Arduino IDE compatible. The IoD can be directly programmed via Arduino IDE like any other ESP8266/Arduino module.

Please download the Arduino IDE for Windows 7 and higher versions, not from the Windows App/Store version, to use with the Woskhop4 IDE (above). If just using the Arduino IDE solely, any version is OK.

The gen4-IoD must be added to the Arduino IDE. This is typically done using the Boards Manager.

Advanced users who wish to use the GitHub main repository are welcome to. The GitHub repository also supports the gen4-IoD, however, is not classed as Stable by the ESP8266 community so should be used with caution.

The easiest way to install the gen4-IoD into the Arduino IDE is by installing the Stable release JSON file provided by the ESP8266 community. This is done by starting up the Arduino IDE, going to File, Preferences, and entering the following line into the 'Additional Boards Manager URLs' field. If you already have a listing in there, simply add a comma after the last one, and paste this new URL at the end:

Click OK on the preferences window to close it.

Go up to Tools, Board, and click on Board Manager.

Board Manager

Once it loads, scroll down to the bottom, and you should see a listing for esp8266. Click on it, then on install, and install the latest version.


Once this has been completed, click Close, and then shut down the Arduino IDE.

The Arduino IDE should then be set up to start using the gen4-IoD.


For advanced users, you can use the GitHub repository for the Arduino esp8266 core (non-stable version). Use at your own risk. Follow the instructions on their GitHub readme.

2.7.4 release of this Library included support for the gen4-IoD Modules with 2MB of Flash, along with the 512KB option which was there in previous versions.


The ESP8266 Core is not maintained or created by 4D Systems. It belongs to

Additional Libraries

Check out the GFX4d library from the 4D Systems GitHub page:

This contains the library specifically for the gen4-IoD and some demo applications.

This library can be downloaded and added to the Arduino IDE, like any normal library.

Navigate to and download the repository, using the download/clone button. Save the zip file to your PC.

Open the Arduino IDE, and go to Sketch - Include Library - Add Zip Library

Arduino IDE

The library will then be installed and will be available for you to use. There are examples of applications available in the examples folder.

Workshop4 IDE

The Workshop4 IDE is a comprehensive software IDE that provides an integrated software development platform for all 4D Systems Intelligent Display Modules, including the IoD.

Workshop4 IDE allows rapid development of applications, and the gen4-IoD can take full advantage of the available extended graphics functions.

The Workshop IDE can create/edit Arduino code and verify/compile and then load the code into the IoD's ESP8266 processor, without having to use the Arduino IDE directly. It makes it possible to create both simple and complex graphical user interfaces.

When the Workshop4 IDE is started, it presents the User with a screen to start a new project or to load a project. Upon selecting to start a new project, another screen is displayed, presenting the wide range of 4D Systems products available to be programmed or configured by the Workshop4 IDE, of which there is the gen4-IoD-24T, gen4-IoD-28T and gen4-IoD-32T.

The Workshop4 IDE can be used to program the gen4-IoD, just as the Arduino IDE does. This is possible due to the integration of the Arduino compiler via the Arduino IDE, which allows Arduino sketches to be written and compiled from within the Workshop4 IDE, which then provides WS4 the benefit of adding graphical widgets and features to the gen4-IoD, which would otherwise not be available when using the Arduino IDE.

If you use the Workshop4 IDE, you can program the gen4-IoD module and have the opportunity to create graphics which you can call using Arduino code via the GFX4d library. Many options are possible.

Workshop4 IDE


The Workshop4 IDE requires the Arduino IDE to be installed as it calls the Arduino IDE for compiling the Arduino sketches. The Arduino IDE however is not required to be opened or modified to program the gen4-IoD, once it has been set up. Please follow the steps found in the Arduino IDE section to install and add the gen4-IoD to the Arduino IDE, before installing the Workshop4 IDE. Please download the Arduino IDE for Windows 7 and higher versions, not from the Windows App/Store version, if you plan on using it with the Woskhop4 IDE.

Display Module Numbers

The following is a breakdown of the part numbers and what they mean.


  • gen4-IoD-24T
  • gen4-IoD-28T
  • gen4-IoD-32T

gen4 - gen4 Display Family

IoD - IoD (Internet of Displays) Range

24 - Display size (2.4")

28 - Display size (2.8")

32 - Display size (3.2")

T - Resistive Touch

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.

Not all development environments and features will be needed by every User. However, purchasing the display solution in a Starter Kit allows you to take full advantage of all of the features of the 4D Systems Display Solution and try out each of the 4D Woskshop4 Environments before settling with the preferred feature set.

Starter Kits typically include:

  • gen4 IoD Display Module
  • 4D-UPA
  • 150mm 10-way FFC cable for connecting gen4 display to 4D - UPA
  • 4GB micro-SD Card

Please refer to the 4D Systems website for current components included in the Starter Kit, if available. Simply select the Starter Kit option when purchasing the chosen display module on the 4D Systems shopping cart, or from your local distributor.

Mechanical Details - gen4-IoD 2.4"

Mechanical Details - gen4-IoD 2.4"

Mechanical Details - gen4-IoD 2.8"

Mechanical Details - gen4-IoD 2.8"

Mechanical Details - gen4-IoD 3.2

Mechanical Details - gen4-IoD 3.2"

Mechanical Details - 4D Universal Programming Adaptor

Mechanical Details - 4D-UPA

Schematic Details - gen4-IoD Display

Schematic Details gen4-IoD

Schematic Details - 4D Universal Programming Adaptor

Schematic Details - 4D-UPA


Absolute Maximum Ratings

Operating ambient temperature -20°C to +70°C
Storage temperature -30°C to +80°C
Voltage on any digital input pin with respect to GND -0.3V to 6.0V
Voltage on VCC with respect to GND -0.3V to 6.0V
Maximum current sunk/sourced by any pin 12.0mA


Stresses above those listed here may cause permanent damage to the device. This is a 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 5.5 V
Operating Temperature -10 -- +60 °C
Input Low Voltage 3.3V, all pins -0.3 -- 0.25VCC V
Input High Voltage GPIO0, GPIO16, and RX Pins 0.7VCC -- 3.3 V
Output Low Voltage -- -- 0.1VCC V
Output High Voltage 0.8VCC -- -- V

Global Characteristics Based on Operating Conditions

Parameter Conditions Min Typ Max Units
Supply Current (ICC) gen4-IoD-24T – Average, not Peak -- 200 -- mA
gen4-IoD-28T – Average, not Peak -- 200 -- mA
gen4-IoD-32T – Average, not Peak -- 220 -- mA
Display Endurance Hours of operation, measured to when the display is 50% original brightness 30000 -- -- H
Touch Screen Endurance (Resistive Touch) Number of touches/hits with a 12.5mm tip at a rate of 2x per second with 250gf force -- 1M -- Touches
Slide stylus on screen, 100gf force, 60mm/s speed with a 0.8mm polyacetal tip stylus pen -- 100K -- Slides
Touch Screen Transparency Resistive Touch 82 -- -- %
Touch Screen Operational Force (Resistive Touch) Only use Finger or Stylus, do not use anything sharp or metal 20 -- 100 Gf


Parameter Conditions Specification
Display Type gen4-IoD-24T – Modules produced BEFORE January 2021.
All gen4-IoD-28T and gen4-IoD-32T
TN - TFT Transmissive LCD
Display Size gen4-IoD-24T 2.4" Diagonal
gen4-IoD-28T 2.8" Diagonal
gen4-IoD-32T 3.2" Diagonal
Display Resolution 240 x 320 (Portrait Viewing)
Display Brightness gen4-IoD-24T 182 cd/m2
gen4-IoD-28T 140 cd/m2
gen4-IoD-32T 160 cd/m2
Display Contrast Ratio Typical (2.4", 2.8") 250:1
Typical (3.2") 500: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 gen4-IoD-24T 1x4 Parallel LED's
gen4-IoD-28T 1x4 Parallel LED's
gen4-IoD-32T 1x6 Parallel LED's
Pixel Pitch gen4-IoD-24T 0.153 x 0.153mm (Square pixels)
gen4-IoD-28T 0.18 x 0.18mm (Square pixels)
gen4-IoD-32T 0.2025 x 0.2025mm (Square pixels)
Pixel Density Number of pixels in 1 row in 25.4mm 166 DPI/PPI


Parameter Conditions Specification
Display Type gen4-IoD-24T – Modules produced January 2021 onwards. IPS - TFT Transmissive LCD
Display Size 2.4" Diagonal
Display Resolution 240 x 320 (Portrait View)
Display Brightness 5V Supply, gen4-uLCD-24DT 270 cd/m2 (typical)
Display Contrast Ratio Typical 800:1
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 White LED Backlighting 1x4 Parallel LED’s
Pixel Pitch 0.153 x 0.153mm (Square pixels)
Pixel Density Number of pixels in 1 row in 25.4mm 166 DPI/PPI

Revision History

Hardware Revision

Revision Number Date Description
1.4 29/03/2017 Initial Public Release Version
1.4 (update) 07/07/2020 Same hardware, however modules now shipping with 2MB (16Mbit) of Flash Memory, instead of 512KB. Allows OTA and more program space for User code.

Datasheet Revision

Revision Number Date Description
1.0 12/06/2017 Initial Public Release
1.1 28/02/2019 Format Change, Arduino Instruction update
1.2 05/03/2019 Cosmetic Changes to gen4 Datasheet range
1.3 13/08/2020 Updated information about Flash Memory change(2MB)
1.4 19/08/2020 Update Schematic
1.5 12/07/2021 Addition of IPS display information/specs (Specifications section).
IPS displays started being used in production as TN stocks were used up.
- gen4-IoD-24T models changed over to IPS in January 2021.
- Any other model not stated, is therefore still a TN display.
1.6 22/12/2022 Modified datasheet for web-based documentation