1.3″ Inch White OLED Display Module 128×64 (SH1106 Driver, I2C Interface, PH2.0 Connector-Back)

SKU: FA2130-5-3
Display Type

Passive Matrix OLED (PMOLED)

Resolution

128 × 64 pixels

Display Color

White (monochrome)

Driver IC

SH1106

Communication Protocol

I2C (IIC)

Default I2C Address

0x3C (some units configurable to 0x3D)

Operating Voltage

3.3V – 5V DC

Operating Current

~20mA typical (all pixels on)

Active Area (W × H)

29.42 × 14.7 mm

Module Dimensions (W × H)

Approx. 35 × 33 mm

Viewing Angle

>160°

Contrast Ratio

2000:1 typical

Operating Temperature

-40°C to +70°C

Storage Temperature

-30°C to +80°C

Product Overview

The 1.3-inch White OLED Display Module is a high-contrast, energy-efficient graphic display designed for embedded systems, IoT devices, and portable electronics . Powered by the SH1106 driver IC and featuring a crisp 128×64 pixel resolution, this larger-format display delivers bright white text, detailed graphics, and custom icons on a true black background .

OLED (Organic Light Emitting Diode) technology requires no backlight, as each pixel emits its own light. This self-emissive design provides true blacks (inactive pixels are completely off), an exceptional contrast ratio, and wide viewing angles over 160°—ensuring the display remains readable from virtually any angle .

This module features a PH2.0 connector on the back for easy cable management, keeping the front of your project clean. It uses the I2C (IIC) interface, requiring only two data lines (SDA and SCL) to connect to your microcontroller . This preserves valuable I/O pins for other sensors and peripherals.

With support for both 3.3V and 5V logic, it is directly compatible with Arduino, ESP32, ESP8266, STM32, Raspberry Pi, and most other development boards – no level shifters required . The larger 1.3-inch active area offers noticeably more space for UI elements, dashboards, and menus than the 0.96-inch version while maintaining the same simple 4-wire I2C hookup .

Key Features

  • Larger 1.3-Inch Active Area: 29.42 × 14.7mm display area offers significantly more screen real estate than 0.96″ displays while maintaining 128×64 resolution

  • White Monochrome OLED: Clean white pixels on true black background provide excellent contrast and professional appearance

  • SH1106 Driver IC: Industry-standard controller with built-in 132×64-bit SRAM display buffer (128×64 visible) and support for I2C interface

  • PH2.0 Connector (Back-Mounted): Convenient JST connector on the back for easy plug-and-play installation using standard 4-pin cables

  • I2C Interface: 4-pin connection (VCC, GND, SCL, SDA) with default address 0x3C – requires only 2 data lines

  • Wide Voltage Compatibility: Operates on DC 3.3V – 5V, compatible with both 5V (Arduino) and 3.3V (ESP32/ESP8266) systems

  • Ultra-Low Power Consumption: ~20mA typical operating current (all pixels on), with no power consumed by unlit pixels – ideal for battery-powered projects

  • Wide Operating Temperature: Rated for -40°C to +70°C, suitable for industrial and outdoor applications

  • Onboard Pull-up Resistors: Built-in pull-ups on SDA and SCL lines – no external resistors required

Technical Specifications

Parameter Operating Value
Display Type Passive Matrix OLED (PMOLED)
Resolution 128 × 64 pixels
Display Color White (monochrome)
Driver IC SH1106
Communication Protocol I2C (IIC)
Default I2C Address 0x3C (some units configurable to 0x3D)
Operating Voltage 3.3V – 5V DC
Operating Current ~20mA typical (all pixels on)
Active Area (W × H) 29.42 × 14.7 mm
Module Dimensions (W × H) Approx. 35 × 33 mm
Viewing Angle >160°
Contrast Ratio 2000:1 typical
Operating Temperature -40°C to +70°C
Storage Temperature -30°C to +80°C

SH1106 Driver Note

This 1.3″ display uses the SH1106 driver IC. The SH1106 has internal RAM of 132×64 pixels, while the visible area is 128×64 pixels. This is different from the SSD1306 driver found on some 0.96″ displays .

Key points for library compatibility:

  • U8g2 library and Adafruit SH110X library work with both SH1106 and SSD1306

  • The SH1106 requires a column start address offset (handled automatically by modern libraries)

  • The onboard regulator accepts 3.3V or 5V, so this module works out-of-the-box with both 3.3V and 5V microcontrollers

Note: While some SSD1306 libraries may work with SH1106 displays, they often produce display artifacts such as shifted or corrupted content on the first few columns. For best results, always use a library that explicitly supports SH1106 .

Pinout & Connection Guide

The module features a PH2.0 4-pin connector with the following pin configuration:

Pin Label Function Description
1 GND Ground Connect to power supply ground
2 VCC Power Supply DC 3.3V – 5V power input
3 SCL I2C Clock Line Connect to SCL pin of your microcontroller
4 SDA I2C Data Line Connect to SDA pin of your microcontroller

Caution: Not all OLED displays use the same pin order. Always verify the silkscreen on your specific module before wiring .

I2C Pin Mapping for Common Development Boards

Development Board SDA Pin SCL Pin Power Note
Arduino Uno / Nano A4 (SDA) A5 (SCL) Use 5V (I2C lines are 5V tolerant)
Arduino Mega 2560 20 (SDA) 21 (SCL) Can use 5V
ESP32 GPIO21 GPIO22 Use 3.3V only
ESP8266 (NodeMCU) GPIO4 (D2) GPIO5 (D1) Use 3.3V only
Raspberry Pi GPIO2 (Pin 3) GPIO3 (Pin 5) Use 3.3V power

Wiring Diagram (Arduino Uno)

text
OLED Module          →    Arduino Uno
─────────────────────────────────────
VCC                  →    5V
GND                  →    GND
SCL                  →    A5 (SCL)
SDA                  →    A4 (SDA)

Tip: On Arduino Mega, SDA is pin 20 and SCL is pin 21. On Leonardo and Micro, SDA is pin 2 and SCL is pin 3 .

Wiring Diagram (ESP32)

text
OLED Module          →    ESP32
─────────────────────────────────────
VCC                  →    3.3V
GND                  →    GND
SCL                  →    GPIO22 (SCL)
SDA                  →    GPIO21 (SDA)

Tip: You can remap I2C to any GPIO pair using Wire.begin(sda, scl). Avoid strapping pins (GPIO 0, 2, 12, 15) to keep boot behavior clean .

Wiring Diagram (Raspberry Pi)

text
OLED Module          →    Raspberry Pi
─────────────────────────────────────
VCC                  →    Pin 1 (3.3V)
GND                  →    Pin 6 (GND)
SCL                  →    Pin 5 (GPIO 3)
SDA                  →    Pin 3 (GPIO 2)

Info: You can also power the module from the Pi 5V rail (pin 2) — the onboard regulator handles either voltage. Using 3.3V keeps logic levels matched and is the recommended option .

Enable I2C on Raspberry Pi

Run sudo raspi-config → Interface Options → I2C → Enable → Reboot. Then verify detection:

bash
sudo apt-get install i2c-tools
i2cdetect -y 1

The display should appear at address 0x3C .

Usage Guide

Software Setup (Arduino IDE)

Step 1: Install Required Libraries

The U8g2 library by Oliver Kraus is the most reliable choice for SH1106 displays, offering excellent support and many font options .

  1. Open Arduino IDE → Sketch → Include Library → Manage Libraries

  2. Search for “U8g2” by Oliver Kraus

  3. Click Install

Alternative Libraries:

  • Adafruit SH110X + Adafruit GFX – Available via Library Manager

Step 2: Basic Test Sketch (U8g2 Library)

cpp
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

// Hardware I2C mode for SH1106 128x64 display
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

void setup() {
  u8g2.begin();
  u8g2.enableUTF8Print();
  u8g2.setFont(u8g2_font_ncenB08_tr);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(0, 15, "1.3 OLED");
    u8g2.drawStr(0, 35, "128x64");
    u8g2.drawStr(0, 55, "SH1106 - I2C");
  } while ( u8g2.nextPage() );
  
  delay(1000);
}

Step 3: Alternative Using Adafruit SH110X Library

cpp
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

// I2C address 0x3C
Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  Serial.begin(9600);
  
  if(!display.begin(0x3C, true)) {
    Serial.println(F("SH1106 allocation failed"));
    for(;;);
  }
  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SH110X_WHITE);
  display.setCursor(0, 0);
  display.println("1.3 OLED");
  display.println("128x64");
  display.println("SH1106 Ready!");
  display.display();
}

void loop() {}

Raspberry Pi Setup (Python)

Install required libraries:

bash
sudo apt-get install python3-pip
pip3 install luma.oled

Python example code :

python
from luma.core.interface.serial import i2c
from luma.oled.device import sh1106
from luma.core.render import canvas

# I2C connection (address 0x3C)
serial = i2c(port=1, address=0x3C)
device = sh1106(serial, width=128, height=64)

with canvas(device) as draw:
    draw.rectangle(device.bounding_box, outline="white", fill="black")
    draw.text((10, 20), "1.3 OLED", fill="white")
    draw.text((10, 40), "128x64 Ready!", fill="white")
Q: What is the difference between this 1.3" OLED and the 0.96" version?

The 1.3″ display has a larger active area (29.42mm × 14.7mm) while maintaining the same 128×64 resolution . This provides larger, more readable pixels and significantly more screen real estate – about 1.8 times the area of 0.96″ displays – making UI elements easier to see and interact with.

Q: What is the default I2C address of this display?

The default I2C address is 0x3C. Some modules may support 0x3D depending on the DC pin configuration . Use the I2C scanner sketch to verify the address of your specific module.

Q: Can I use this display with a 5V Arduino Uno directly?

Yes. The module includes an onboard voltage regulator that accepts both 3.3V and 5V power. Connect VCC to 5V, GND to GND, SCL to A5, and SDA to A4 – no level shifters required .

Q: Why does my display stay blank after power-up?

Check these common issues:

  1. Wrong I2C address – Run the I2C scanner sketch (should be 0x3C or 0x3D)

  2. Wiring – Re-verify VCC, GND, SCL, SDA connections

  3. Missing initialization code – Ensure your setup function initializes the display properly

  4. Library selection – Make sure you’re using a library that supports SH1106 (U8g2 or Adafruit SH110X)

  5. Power supply – Ensure your power source can deliver adequate current (max ~40mA)

Q: How do I use this display with an ESP32 or ESP8266?

Both ESP32 and ESP8266 use 3.3V logic, which is directly compatible. Connect VCC to 3.3V, GND to GND, and SCL/SDA to the appropriate I2C pins: ESP32: GPIO21(SDA)/GPIO22(SCL); ESP8266: GPIO4(SDA)/GPIO5(SCL). The U8g2 library works on these platforms with the same code .

Q: What is the PH2.0 connector and why is it convenient?

The PH2.0 connector is a 2.0mm pitch JST-compatible connector. The back-mounted connector allows you to use standard 4-pin JST cables for plug-and-play installation without soldering . This makes prototyping and wiring much faster and more reliable.

Q: Can I display Chinese characters or custom fonts?

Yes. The U8g2 library supports UTF-8 encoding and includes various fonts. Enable with u8g2.enableUTF8Print() and use the appropriate font. For custom fonts, use tools like LCD Image Converter to convert text into bitmap data arrays .

Q: What is the lifespan of the OLED display?

In normal working conditions, OLED modules typically last 50,000 hours (about 5.7 years) of continuous operation . Avoid displaying static images for extremely long periods to prevent uneven pixel wear (“burn-in”). For typical intermittent hobbyist use, this is not a concern.

Q: Why does the SH1106 driver require specific library support?

The SH1106 has internal RAM of 132×64 pixels, while the visible area is 128×64 pixels. It requires a column start address of 0x02 (unlike SSD1306’s 0x00) . Libraries like U8g2 and Adafruit SH110X handle this offset automatically, ensuring proper display alignment.

Q: Can I use the 1.3" OLED for battery-powered projects?

Yes. OLEDs are power-efficient because only lit pixels consume power. The module typically draws ~20mA with all pixels on . When displaying dark or partially lit screens, power consumption drops significantly. For maximum battery life, implement sleep modes to turn off the display when not actively in use (send command 0xAE to the display).