What is the pin configuration for 2.8 inch TFT display module?
To understand the pin configuration in detail, we need to break down the physical layout and electrical characteristics. The 2.8-inch TFT display module, measuring 240x320 pixels, uses a parallel or serial interface. The SPI (Serial Peripheral Interface) version is the most popular due to its low pin count and compatibility with microcontrollers like Arduino, ESP32, and Raspberry Pi. The ILI9341 driver, which is widely used in these modules, supports 4-wire SPI mode, which requires only 6 pins (excluding power and ground). However, many breakout boards add extra pins for touch, backlight, and voltage regulation.
Standard Pinout Table for 2.8-inch TFT Display Module (SPI, ILI9341)
| Pin Number | Pin Name | Function | Typical Voltage |
|---|---|---|---|
| 1 | VCC | Power supply (3.3V or 5V, depending on regulator) | 3.3V-5V |
| 2 | GND | Ground | 0V |
| 3 | CS | Chip select (active low) | 3.3V logic |
| 4 | RESET | Reset (active low) | 3.3V logic |
| 5 | DC | Data/command select (high=data, low=command) | 3.3V logic |
| 6 | MOSI | Master out slave in (data from controller to display) | 3.3V logic |
| 7 | MISO | Master in slave out (data from display to controller, optional) | 3.3V logic |
| 8 | SCK | Serial clock | 3.3V logic |
| 9 | LEDA | Backlight anode (positive) | 3.3V-5V via resistor |
| 10 | LEDK | Backlight cathode (negative) | GND |
| 11 | T_IRQ | Touch interrupt (if touch controller present) | 3.3V logic |
| 12 | T_DO | Touch SPI data out (MISO for touch) | 3.3V logic |
| 13 | T_DIN | Touch SPI data in (MOSI for touch) | 3.3V logic |
| 14 | T_CS | Touch chip select | 3.3V logic |
| 15 | T_CLK | Touch SPI clock | 3.3V logic |
This table represents a typical 15-pin configuration, but many modules have 18 pins with additional ground or NC (no connect) pins. The 2.8 inch tft display module for arduino variants often include a built-in 3.3V voltage regulator, allowing the VCC pin to accept 5V directly from Arduino. However, the logic pins (CS, RESET, DC, MOSI, MISO, SCK) must remain at 3.3V, which is why level shifters are recommended when using 5V microcontrollers. Some modules integrate a 74LVC125 or similar level shifter, but many do not, so you need to check the datasheet.
Electrical Specifications and Voltage Levels
The display module's core logic runs at 3.3V, but the backlight LED typically operates at 3.3V to 5V through a current-limiting resistor. The ILI9341 driver has a maximum logic input voltage of 3.6V, so 5V signals can damage the chip. To avoid this, use a logic level converter or a voltage divider on the SPI lines. For example, a 1kΩ resistor in series with a 2.2kΩ resistor to ground on the MOSI line will drop 5V to about 3.2V. The MISO pin is usually 3.3V output, so it can connect directly to a 5V microcontroller's input if the pin is 5V tolerant (most Arduino pins are).
Backlight current consumption is around 100-200mA at full brightness, which is why the LEDA pin should not be connected directly to a microcontroller pin. Use a transistor or a dedicated backlight driver circuit. The LEDK pin is connected to ground. Some modules have a PWM control pin for brightness, but in the standard 18-pin layout, backlight is controlled by a separate jumper or resistor.
Physical Pinout Variations Across Manufacturers
Not all 2.8-inch TFT modules have the same pin order. For instance, the popular Adafruit 2.8" TFT Touch Shield uses a 28-pin header, but the breakout board version has a 18-pin layout. The Waveshare 2.8-inch module uses a 20-pin header with extra pins for SD card slot. The pin configuration for the 2.8 inch TFT display module from different suppliers can be swapped, like CS and DC pins being on different positions. Always check the silkscreen on the PCB or the datasheet. Common mistakes include swapping MOSI and MISO, or connecting RESET to a fixed high state, which prevents the display from initializing.
Here is a comparison of pin assignments for three common modules:
| Pin Function | Module A (ILI9341, 18-pin) | Module B (ST7789, 20-pin) | Module C (HX8357, 18-pin) |
|---|---|---|---|
| VCC | Pin 1 | Pin 1 | Pin 1 |
| GND | Pin 2 | Pin 2 | Pin 2 |
| CS | Pin 3 | Pin 4 | Pin 3 |
| RESET | Pin 4 | Pin 5 | Pin 4 |
| DC | Pin 5 | Pin 6 | Pin 5 |
| MOSI | Pin 6 | Pin 7 | Pin 6 |
| MISO | Pin 7 | Pin 8 | Pin 7 |
| SCK | Pin 8 | Pin 9 | Pin 8 |
| LEDA | Pin 9 | Pin 10 | Pin 9 |
| LEDK | Pin 10 | Pin 11 | Pin 10 |
| T_IRQ | Pin 11 | Pin 12 | Pin 11 |
| T_DO | Pin 12 | Pin 13 | Pin 12 |
| T_DIN | Pin 13 | Pin 14 | Pin 13 |
| T_CS | Pin 14 | Pin 15 | Pin 14 |
| T_CLK | Pin 15 | Pin 16 | Pin 15 |
| SD_CS | N/A | Pin 17 | Pin 16 |
| SD_MOSI | N/A | Pin 18 | Pin 17 |
| SD_MISO | N/A | Pin 19 | Pin 18 |
| SD_SCK | N/A | Pin 20 | N/A |
As you can see, the SD card slot pins are not present in all modules. The 2.8 inch tft display module for arduino that includes a microSD slot often has these extra pins, which share the same SPI bus but with a separate chip select. This is important for data logging or image storage projects.
Touch Controller Pinout Details
If the module includes a resistive touch screen, the touch controller is usually an XPT2046 or ADS7843. These communicate via SPI and have their own set of pins: T_IRQ (interrupt), T_DO (MISO), T_DIN (MOSI), T_CS (chip select), and T_CLK (clock). The T_IRQ pin goes low when the screen is touched, allowing the microcontroller to wake up or poll for touch data. The touch controller operates at 3.3V, same as the display. Some modules combine the touch SPI with the display SPI, sharing the same MOSI, MISO, and SCK lines, but with separate chip selects. This reduces pin count but requires careful library management.
For example, in the Adafruit_ILI9341 library, you define separate CS pins for display and touch. The touch library (Adafruit_FT6206 or XPT2046_Touch) uses the same SPI bus but with different CS. The typical wiring for a 2.8-inch TFT with touch is:
- Display CS: Arduino pin 10
- Touch CS: Arduino pin 9
- DC: Arduino pin 8
- RESET: Arduino pin 7
- MOSI: Arduino pin 11 (ICSP header)
- MISO: Arduino pin 12 (ICSP header)
- SCK: Arduino pin 13 (ICSP header)
- Backlight: Arduino pin 6 (PWM capable)
This configuration uses 8 digital pins plus power and ground. The backlight pin can be controlled with analogWrite() for brightness adjustment. The touch interrupt pin (T_IRQ) can be connected to any digital input, but using pin 2 or 3 on Arduino Uno allows interrupt-driven touch detection.
Power Supply Considerations
The 2.8-inch TFT display module draws significant current. At full brightness with all pixels white, the display consumes about 200-300mA from the 3.3V rail. The backlight LED adds another 100-150mA. If powered from an Arduino's 3.3V regulator, which can only supply 150mA, you risk brownouts. Therefore, it is better to power the display from the 5V pin through the module's onboard regulator, or use an external 3.3V regulator capable of 500mA. The 2.8 inch tft display module for arduino with a 5V input pin has a built-in 3.3V regulator (like the AMS1117-3.3), which can handle up to 800mA, but it gets hot. Adding a heatsink or ensuring airflow is recommended for continuous operation.
For battery-powered projects, consider using a separate 3.3V boost converter or a low-dropout regulator. The ILI9341 has a sleep mode that reduces current to under 100µA, which can be activated by sending a command. The backlight can be turned off by setting the PWM pin low, further reducing power consumption.
SPI Communication Speed and Timing
The ILI9341 supports SPI clock speeds up to 10MHz for command mode and up to 40MHz for data mode (depending on the revision). However, with long wires or breadboards, signal integrity degrades above 10MHz. For the 2.8-inch display, a clock speed of 4-8MHz is typical for Arduino Uno, while ESP32 can handle 20-40MHz. The MISO pin is optional for display-only operation (no readback), but if you need to read the display's memory or touch data, you must connect it. The timing for the DC pin is critical: it must be set before the CS pin goes low, and held stable during the SPI transaction. Many libraries handle this automatically.
Here is a typical SPI timing diagram for the ILI9341:
- CS low to first SCK edge: minimum 10ns
- SCK high time: minimum 25ns
- SCK low time: minimum 25ns
- Data setup time before SCK rising edge: minimum 10ns
- Data hold time after SCK rising edge: minimum 10ns
These timings are easily met by most microcontrollers. The Arduino Uno's SPI clock at 4MHz has a period of 250ns, well above the minimum. For higher speeds, use a dedicated SPI library or hardware SPI with DMA.
Common Wiring Mistakes and Fixes
Many beginners connect the 2.8 inch tft display module for arduino incorrectly. The most common error is connecting the 5V pin to the 3.3V output of the Arduino, which under-powers the display and causes flickering or no display. Another mistake is not connecting the RESET pin to a microcontroller pin; leaving it floating can cause the display to reset randomly. Always connect RESET to a digital pin, or at least pull it high with a 10kΩ resistor to 3.3V. The CS pin must be pulled high when not in use, but the microcontroller handles this. If you use software SPI, ensure the pins are defined correctly in the library.
For modules with a touch screen, the T_IRQ pin is often left unconnected, but this prevents the touch library from detecting touches efficiently. Connect it to an interrupt-capable pin. Also, the touch controller's CS pin must be different from the display's CS. Sharing the same CS will cause both devices to respond to the same SPI commands, corrupting data.
Physical Dimensions and Mounting
The 2.8-inch TFT module has a PCB size of approximately 50mm x 70mm, with a viewing area of 43.2mm x 57.6mm. The pin header is usually on the bottom edge, with 2.54mm pitch. Some modules have a 2x10 header, while others have a 1x20 header. The module's thickness is about 5mm including the PCB and LCD glass. For mounting, use M2 screws in the corners, or double-sided tape. The FPC connector for the LCD is fragile, so avoid bending it.
If you are using the module with a breadboard, the pin header can be soldered directly into the breadboard, but the weight of the display may cause it to tilt. Use a ribbon cable or a custom PCB adapter for a stable connection. The 2.8 inch tft display module for arduino often comes with a pre-soldered header, but you can also order it with a socket for easy removal.
Software Library Support
The most popular library for the ILI9341 is the Adafruit_ILI9341 library, which works with the Adafruit_GFX library for graphics. For the ST7789, use the Adafruit_ST7789 library. For the HX
Ship generative AI without leaking prompts, models, or data.
Book 30 minutes with a Shaiex solutions architect to map What is the pin configuration for 2.8 inch TFT display module? against your stack.