How to Connect a Display Module to Arduino, Raspberry Pi, ESP32 and Other Development Boards

Start with the display interface and electrical requirements—not the jumper wires. A correct connection depends on the panel, its controller and the capabilities of the host board

Connecting a display module to a development board sounds straightforward: identify the pins, connect the wires, install a library and run an example. That approach works for some small OLED modules, but it becomes less reliable when the project uses a color TFT LCD, a touch display or a panel designed for an embedded product.

The reason is that a display module is not defined by its screen size or appearance alone. Two displays with similar dimensions may use completely different interfaces, supply voltages, controller ICs and initialization sequences. One may connect directly to a microcontroller through SPI; another may require an RGB interface, a dedicated driver board or an HDMI input.

Arduino, Raspberry Pi and ESP32 boards also have different roles. Arduino boards are commonly used for microcontroller-based control and simple display projects. Raspberry Pi computers can run a full operating system and drive compatible displays through HDMI, dedicated display connectors or GPIO interfaces. ESP32 boards offer GPIO-based interfaces and can drive supported LCD controllers through SPI, RGB and other configurations, depending on the specific chip and board.

This guide explains how to identify the right connection method, wire common display types, choose software and troubleshoot the problems that tend to appear during the first test.

1. Identify the Display Interface Before Connecting Anything

Before selecting a library or wiring the module, find the exact display model and its datasheet. The datasheet should identify the electrical interface, connector pinout, supply requirements and controller information. If the module is supplied with a separate driver board, check the board documentation as well.

I²C: A Simple Option for Small Displays

I²C uses two main signal lines: SDA for data and SCL for the clock. Small monochrome OLED modules and some character LCD adapters commonly use this interface.

The limited number of signal wires makes I²C convenient for simple status screens, sensor readouts and low-resolution interfaces. However, I²C is not automatically suitable for every display. A large color panel may need much more data bandwidth than an I²C connection can provide.

Check whether the module includes pull-up resistors, what logic voltage it expects and whether its controller is supported by the intended software library.

SPI: Common for Small TFT LCD and E-Paper Modules

SPI usually uses SCLK, MOSI and, where needed, MISO. A display module may also have CS (chip select), DC or D/C (data/command), RESET and backlight control pins.

SPI is widely used with small TFT LCDs, OLEDs and e-paper modules. It is often easier to integrate with a microcontroller than a high-pin-count parallel interface.

The exact pin count depends on the module. A write-only display may not use MISO, while some modules share the SPI bus with a touch controller or microSD card. Confirm the functions in the datasheet rather than assuming every connector uses the same arrangement.

Parallel RGB and Other High-Bandwidth Interfaces

Some TFT LCD modules use an RGB interface with separate data lines and timing signals, such as pixel clock, horizontal sync, vertical sync and data enable. These interfaces can support higher data throughput but require more GPIOs and suitable display-controller support.

A module with an RGB interface cannot normally be connected to a few SPI pins and operated as though it were an SPI display. If the host board cannot generate the required timing, an appropriate controller or bridge may be needed.

HDMI and Dedicated Display Connectors

An HDMI display or monitor accepts a video signal from a compatible host output. It is fundamentally different from a bare LCD panel with an FPC connector.

Raspberry Pi systems can use HDMI displays, official or compatible display assemblies, and other supported interfaces. A bare panel may need a controller board that converts the host's video output into signals the panel can accept.

For projects that need a more direct connection to a computer-style host, review compatible HDMI Display options rather than assuming a bare TFT module will accept HDMI directly.

The Interface Determines the Connection Method

Display interface Typical wiring or connection Common use Main consideration
I²C SDA, SCL, power and ground Small OLED or character display Low pin count; bandwidth is limited
SPI SCLK, MOSI, optional MISO, CS and control pins Small TFT, OLED and e-paper modules Requires a compatible controller and library
Parallel RGB Multiple data lines plus timing signals Color TFT LCD panels Requires sufficient host interface support and GPIO resources
HDMI HDMI cable to a compatible input Monitors and controller-board display assemblies A bare LCD panel usually needs a suitable controller
MIPI DSI Dedicated high-speed differential interface Embedded displays and supported single-board computers Host and panel/controller compatibility is essential

These are general interface categories, not universal wiring instructions. The exact requirements come from the selected module and host board.

2. Check Voltage, Pinout and Power Before Wiring

Many display problems begin before any software is installed. A connector can fit physically while the electrical signals are incompatible.

Confirm the Display Supply Voltage

Do not assume every display module accepts 5 V because it has a VCC pin. Some modules are designed for 3.3 V; others accept a wider supply range because a regulator is built into the module. The panel, controller and backlight may also have separate power requirements.

Read the module specification for its permitted supply voltage and current. A bare LCD panel may require several power rails or a separate backlight driver, while a breakout board may include some of those circuits.

If the documentation specifies 3.3 V only, applying 5 V to the supply or signal pins can damage the module.

Check Logic-Level Compatibility

Power-supply voltage and signal logic voltage are not necessarily the same. A board that accepts 5 V power may still use 3.3 V logic, and a display's inputs may not be 5 V tolerant.

This matters when connecting a 5 V Arduino board to a 3.3 V display. Check the electrical characteristics of both devices and use a suitable level shifter when required. A voltage divider may be acceptable for some slow signals, but it is not a universal replacement for a proper level-shifting circuit.

Raspberry Pi GPIO uses 3.3 V logic and should not be treated as 5 V tolerant. Never connect a 5 V signal directly to a Raspberry Pi GPIO input unless the interface hardware explicitly provides protection.

Verify the Connector Orientation and Pin Numbering

FPC and FFC connectors can be easy to misread. Pin 1 may be marked on the PCB or shown in the datasheet drawing, but the viewing direction of the connector drawing matters.

Before applying power, confirm:

  • The pin-1 position and connector orientation.

  • The function of each power and ground pin.

  • The logic voltage of every signal.

  • Whether the backlight has separate power and control pins.

  • Whether the module requires a reset signal or initialization sequence.

If the module uses a fine-pitch FPC, do not force the cable into the connector or insert it at an angle. A damaged contact or reversed cable can create faults that look like software problems.

Size the Power Supply for the Whole System

A development board's 3.3 V or 5 V output may be sufficient for a small display module, but it should not be assumed to power every larger panel and its backlight.

Check the display's current requirements, especially at maximum brightness. Also account for the host board, touch controller, wireless activity and other peripherals. If the display needs a separate supply, follow the manufacturer's wiring guidance and establish the required common ground for signal communication.

3. Connecting an I²C Display to Arduino

Arduino boards are popular for sensor interfaces, simple instruments and prototypes. A small I²C OLED is one of the easier displays to bring up, provided the module and board use compatible voltage levels.

Example: Arduino Uno and an I²C OLED

For a typical Arduino Uno using the standard I²C pins, the connection is:

OLED pin Arduino Uno connection
VCC The supply voltage specified for the OLED module
GND GND
SDA A4 / SDA
SCL A5 / SCL

On other Arduino boards, the I²C pins may be located elsewhere or exposed through dedicated SDA and SCL labels. Check the pinout for the exact board revision.

Install the Correct Library

The library depends on the display controller. An SSD1306-based OLED, for example, needs compatible SSD1306 driver support; a different controller may require a different library even if the screen has the same resolution.

A typical workflow is to install the library and its dependencies, select the correct board and port in the Arduino IDE, then run a simple example. Start with a basic text or pixel test before adding sensors, menus or touch controls.

Arduino's own LCD connection guide explains the basic approach for compatible character LCDs. For TFT displays, confirm that the library supports the actual controller IC and interface.

What If the Display Is a SPI TFT?

A SPI TFT typically needs more connections than an I²C OLED. Depending on the module, these may include SCLK, MOSI, CS, DC, RESET and backlight control. MISO may be unnecessary for a write-only display.

Do not copy an example's GPIO numbers without checking the board and library configuration. The pin assignments in a tutorial may refer to a particular Arduino model or a specific shield.

For an e-paper project, YOURITECH's Arduino e-Paper Display collection is a relevant starting point for modules intended for Arduino-based integration. The exact interface, driver and timing requirements still need to be checked for the selected product.

4. Connecting a Display to Raspberry Pi

Raspberry Pi is a small computer rather than a conventional microcontroller board. That distinction affects how the display is connected and controlled.

Option 1: Use HDMI for a Compatible Display

If the display assembly has an HDMI input, connect it to the Raspberry Pi's compatible HDMI output, then provide power according to the display instructions. The operating system may detect and configure a standard monitor automatically, although resolution or rotation settings may need adjustment.

A bare LCD panel with an FPC connector is different. It does not become an HDMI display simply because the Raspberry Pi has an HDMI output. A suitable controller board must translate the host's video signal into the interface required by the panel.

Option 2: Use the Official or Compatible Dedicated Display Interface

Some Raspberry Pi display assemblies connect through a dedicated display connector and matching FFC cable. Connector type, cable direction and compatibility vary by Raspberry Pi model and display revision.

Follow the official instructions for the exact hardware. Raspberry Pi's Touch Display documentation explains the connection requirements for supported display assemblies, including the need to use the appropriate cable for the relevant board.

Always disconnect power before attaching or removing an FFC cable unless the product documentation explicitly states otherwise.

Option 3: Use GPIO for I²C or SPI Modules

Raspberry Pi can also communicate with compatible I²C and SPI modules through GPIO. For a standard I²C connection on many Raspberry Pi models, GPIO 2/SDA and GPIO 3/SCL are used. SPI-capable modules can use the board's supported SPI pins.

However, check the pinout for the exact Raspberry Pi model and enable the required interface in the operating system configuration. A Python library may be suitable for one controller, while another display may require a different driver or device-tree configuration.

For e-paper projects, see YOURITECH's Raspberry Pi e-Paper Display collection. Confirm the selected module's controller and software support before ordering or wiring it.

5. Connecting a Display to ESP32

ESP32 boards are commonly used in connected sensors, smart-home devices and compact user interfaces. Their available display interfaces depend on the particular ESP32 chip, board layout and software framework.

ESP32 and I²C OLED

A typical I²C OLED connection uses four main wires:

Display pin Typical ESP32 connection
VCC The voltage specified by the display module
GND GND
SDA The configured SDA GPIO
SCL The configured SCL GPIO

GPIO 21 and GPIO 22 are common defaults on some ESP32 development boards, but they are not universal assignments. ESP32 variants and board designs differ, and I²C pins can often be configured in software.

In Arduino IDE, use the Wire library with the correct SDA and SCL pins for the selected board. Then initialize the display driver using the controller-specific library.

ESP32 and SPI TFT LCD

A SPI TFT generally requires SCLK, MOSI, CS, DC and often RESET. Some modules have a separate backlight pin that can be controlled through a suitable GPIO or powered according to the module's design.

The ESP32's SPI signals and display-control pins must match the software configuration. Check whether the selected library supports the display controller and the particular ESP32 target. If using a touch controller or SD card on the same SPI bus, confirm chip-select assignments and whether the peripherals can share the bus correctly.

For a more detailed implementation reference, Espressif's SPI LCD documentation for ESP32 covers SPI bus configuration and the information needed to initialize supported LCD panels.

ESP32 and RGB Displays

Some ESP32-family chips and development boards support RGB LCD interfaces, but not every ESP32 board has the same capability. An RGB display may require many GPIOs, pixel-clock timing and sufficient memory or DMA resources to refresh the image.

Before selecting a panel, check the exact chip's display-peripheral support, the board's exposed pins, available RAM and the software framework. A display that works on one ESP32-S3 board may not be a practical match for a smaller ESP32 board without the same interface resources.

6. Understand the Difference Between a Bare Panel and a Display Module

One common source of confusion is the word “display.” It can refer to several different products.

Bare LCD Panel

A bare panel generally provides the LCD glass, flex cable and panel-level connections. It may need external timing and power circuitry, a backlight driver or a controller designed for that specific panel.

It is not usually suitable for direct connection to general-purpose GPIO pins without checking the electrical and timing requirements.

Display Module with a Controller

A module with an integrated controller may accept SPI, I²C, RGB or another defined interface. It is generally easier to connect to a development board, but the controller's command set and initialization sequence still matter.

Display with a Driver Board

A driver board can bridge the host interface to the panel's requirements. The board must be designed for the exact panel or an explicitly compatible panel family. Connector shape alone is not proof of compatibility.

If your project needs a controller or interface board, review YOURITECH's Driver Board information and verify the panel model, input interface, power requirements and supported resolution before integration.

7. Software Setup: Why a Correctly Wired Display May Still Stay Blank

A display can be wired correctly and still show nothing if the software does not match the hardware.

Match the Library to the Controller

Identify the display controller IC and check whether the library supports it. A library for an SSD1306 OLED will not automatically drive an ST7789 TFT, even if both modules use SPI.

Some modules use controller variants or customized initialization sequences. If the vendor provides a tested example, begin with that example before modifying the code.

Check Resolution and Orientation

Incorrect width, height or rotation settings can cause a blank region, clipped text or an image displayed in the wrong orientation. Set the dimensions and rotation to match the panel's native resolution and library requirements.

Confirm Initialization and Reset Timing

Some controllers need a reset pulse and a sequence of initialization commands before they can accept image data. If the reset pin is wired incorrectly or the initialization code is missing, the backlight may turn on while the screen remains blank.

Separate Display Data from Touch Input

A touch display may contain two independent devices: the display controller and the touch controller. The LCD may use SPI or RGB while the touch sensor uses I²C or a separate SPI chip select.

A working image does not prove that touch input is configured correctly. Test each subsystem independently, then combine them in the application.

8. Troubleshooting Common Connection Problems

When a display fails to work, change one variable at a time. Rewiring everything and changing libraries simultaneously makes the cause harder to identify.

The Screen Is Completely Blank

Check the supply voltage, ground, connector orientation and backlight power first. Then verify that the host is using the correct interface and that the controller initialization sequence has run.

For a module with a separate backlight, determine whether the panel is displaying an image without illumination or whether the controller itself has not initialized.

The Screen Lights Up but Shows No Image

A lit backlight only confirms that the backlight circuit is receiving power. It does not confirm that the LCD controller is communicating.

Check the display controller, pin mapping, SPI clock and chip-select configuration, reset timing and resolution settings. If possible, run the manufacturer's simplest display example.

I²C Devices Are Not Detected

Confirm SDA and SCL are not swapped, the device is powered and the logic levels are compatible. Check whether I²C is enabled on the host and whether the address matches the module.

If several devices share the bus, verify that their addresses do not conflict. Pull-up resistor values and wiring length can also affect reliability.

The Display Works Intermittently

Intermittent behavior may come from weak power delivery, poor jumper-wire contacts, an unsuitable signal speed or electrical noise. Long wires are especially unhelpful for high-speed interfaces.

Reduce the SPI clock during initial testing, use short connections and check the supply under load. Once the system works reliably, increase the speed gradually and test again.

Colors Are Wrong or the Image Is Distorted

Check the pixel format, color order, orientation, resolution and controller initialization. Some libraries expect RGB565 data, while other code may use a different format or byte order.

For RGB interfaces, timing parameters and signal assignments are also important. These issues are not usually fixed by changing the display's power supply.

9. A Practical Checklist Before Final Integration

Before treating a display connection as complete, confirm the following points in the actual hardware and software:

Hardware Compatibility

The exact panel or module model is identified, and its datasheet matches the physical product. The host supports the required interface, voltage levels and signal timing. The connector orientation and pin numbering have been checked.

Software Compatibility

The driver library supports the controller and host platform. Resolution, orientation, reset sequence and interface pins are configured correctly. If touch is included, its controller and library are also supported.

Power and Reliability

The supply can handle the module and backlight current. Signal levels are compatible, grounds are connected as required, and wires or FFC cables are secured. The system has been tested through repeated power cycles rather than only a single successful startup.

Production Considerations

For a prototype, jumper wires may be sufficient. For a product, consider connector retention, cable routing, ESD protection, EMI, mechanical mounting and service access. A setup that works on an open bench may behave differently inside an enclosure with a longer cable or a noisier power supply.

Frequently Asked Questions

Can I connect any LCD display directly to Arduino?

No. The display must use an interface the board can support, and the voltage, pinout and controller must be compatible. Some modules connect directly through SPI or I²C; others need a controller board or a different host.

Can Raspberry Pi drive a bare TFT LCD panel?

Not necessarily. A bare panel may require a dedicated display interface, timing controller or compatible driver board. HDMI output from the Raspberry Pi does not directly drive a panel's FPC connector without suitable conversion hardware.

Are ESP32 GPIO 21 and GPIO 22 always SDA and SCL?

No. They are common defaults on some ESP32 development boards, but pin assignments depend on the chip, board and software configuration. Verify the board pinout and configure the I²C pins accordingly.

Why does my display backlight turn on but no image appear?

The backlight and image-driving circuits are separate. The controller may not be initialized, the interface pins may be incorrect, or the software may not support the controller. Check the datasheet and run a verified example for the exact module.

Can I use the same library for OLED and TFT displays?

Not automatically. The required library depends on the display controller, interface and module implementation. Some graphics libraries support multiple controllers through separate driver components, but the correct driver still has to be selected.

Do I need a level shifter between Arduino and a display?

Only when the signal-level requirements call for one. Compare the Arduino's output levels with the display's input limits. A 5 V signal must not be connected directly to a 3.3 V-only input unless the hardware explicitly supports it.

Final Thoughts

Connecting a display module to Arduino, Raspberry Pi or ESP32 is mainly a compatibility exercise. The important questions are not simply which board you have, but which interface the display uses, what voltage it expects, which controller it contains and whether the host can generate the required signals.

For a small I²C OLED, the wiring may be limited to power, ground, SDA and SCL. A SPI TFT needs additional control signals and a matching driver library. A high-resolution RGB panel or bare LCD may require a host with the right display peripheral or a dedicated controller board.

Identify the exact module first, verify the electrical requirements, then bring up the display with a minimal example. Once the image is stable, add touch input and the rest of the application. That sequence usually saves more time than trying several libraries and wiring combinations at random.

For display projects that need a particular size, interface or integration approach, YOURITECH provides display options and technical information across its display collections and driver board resources. Confirm the exact model and interface requirements before finalizing the hardware design.

Back to blog

1 comment

Would like to use your ET042RF01-Y display with ESP32 and Arduino IDE. Any technical info on how to program it?
Thanks

Terry Cornall

Leave a comment