1.3″ Inch Blue(Or White) I2C IIC OLED LCD Module 4pin (with VCC GND SCL SDA)

SKU: FA2128
Display Type

OLED (Organic Light Emitting Diode)

Resolution

128 × 64 pixels

Display Colors

Blue or White (monochrome)

Driver IC

SH1106

Communication Protocol

I2C (IIC)

Default I2C Address

0x3C

Operating Voltage

3.3V – 5V DC

Typical Consumption

0.04W (normal operation) / 0.08W (full screen)

Display Area (W × H)

29.42mm × 14.7mm

Module Dimensions (W × H)

Approx. 35.5mm × 33.5mm

Operating Temperature

-40°C to +85°C

Contrast Ratio

10,000:1

Viewing Angle

>160°

Driver Duty

1/64 Duty

Product Overview

The 1.3-inch I2C OLED Display Module is a compact, high-contrast monochrome screen designed for embedded projects requiring crisp visual output without consuming excessive power or I/O pins. Powered by the SH1106 driver IC and featuring a sharp 128×64 pixel resolution, this display delivers vibrant text, detailed graphics, and custom icons in either striking blue or clean white .

Unlike traditional LCDs that require a power-hungry backlight, OLED (Organic Light Emitting Diode) technology allows each pixel to emit its own light. This self-emissive design provides true blacks (inactive pixels are completely off), an exceptional 10,000:1 contrast ratio, and >160° viewing angles – ensuring the display remains readable from almost any angle .

The module uses the 4-pin I2C interface (VCC, GND, SCL, SDA), requiring only two data lines 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, Raspberry Pi, STM32, and most other development boards – no level shifters required .

Key Features

  • 1.3-Inch Active Area: Larger than 0.96″ OLEDs, offering 34.5mm × 19mm display area for better readability

  • 128×64 Pixel Resolution: High-definition display with 128 columns and 64 rows – capable of showing detailed graphics, bitmaps, and up to 8 lines of small text

  • SH1106 Driver IC: Industry-standard controller with built-in 132×64-bit SRAM buffer (supports 128×64 active area)

  • I2C Interface: 2-wire communication requires only 2 data lines (SCL and SDA) – saves valuable I/O pins

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

  • Ultra-Low Power Consumption: Uses approximately 0.04W (typical operation) – no backlight means lower battery drain

  • Wide Viewing Angle: >160° visibility ensures clear readouts from almost any angle without contrast shift

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

  • Self-Emitting OLED Technology: True blacks with 10,000:1 contrast ratio – superior readability in all lighting conditions

Technical Specifications

Parameter Operating Value
Display Type OLED (Organic Light Emitting Diode)
Resolution 128 × 64 pixels
Display Colors Blue or White (monochrome)
Driver IC SH1106
Communication Protocol I2C (IIC)
Default I2C Address 0x3C
Operating Voltage 3.3V – 5V DC
Typical Consumption 0.04W (normal operation) / 0.08W (full screen)
Display Area (W × H) 29.42mm × 14.7mm
Module Dimensions (W × H) Approx. 35.5mm × 33.5mm
Operating Temperature -40°C to +85°C
Contrast Ratio 10,000:1
Viewing Angle >160°
Driver Duty 1/64 Duty

Pinout & Connection Guide

The 4-pin I2C interface is extremely simple – perfect for beginners and rapid prototyping.

Pin Label Function Connection (Arduino Uno)
1 VCC Power Supply (3.3V – 5V) 5V (or 3.3V)
2 GND Ground GND
3 SCL I2C Clock Line A5 (SCL)
4 SDA I2C Data Line A4 (SDA)

I2C Pin Mapping for Common Development Boards

Development Board SDA Pin SCL Pin
Arduino Uno / Nano A4 A5
Arduino Mega 2560 20 21
ESP32 GPIO21 GPIO22
ESP8266 (NodeMCU) GPIO4 (D2) GPIO5 (D1)
Raspberry Pi GPIO2 (Pin 3) GPIO3 (Pin 5)

Wiring Diagram (Arduino Uno)

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

SH1106 vs SSD1306: Important Note

Unlike 0.96″ displays that typically use the SSD1306 driver, 1.3″ OLEDs generally use the SH1106 driver . While both are excellent drivers, they have a key difference:

  • SH1106 has internal RAM of 132×64 pixels (display area is 128×64). The extra 4 columns are typically not displayed

  • SSD1306 has internal RAM of 128×64 pixels

This means you cannot use an SSD1306 library with an SH1106 display without modifications. Use libraries that explicitly support SH1106, such as:

  • Adafruit_SH1106 (esp. for 128×64 displays)

  • U8g2 library (supports both SH1106 and SSD1306)

  • SparkFun Qwiic OLED Library (for 1.3″ displays)

Usage Guide (Arduino IDE)

Step 1: Install Required Libraries

You need two libraries – one for graphics and one for the SH1106 driver.

Option A: Adafruit SH1106 (Recommended for SH1106)

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

  2. Search for and install:

    • “Adafruit GFX Library” (Core graphics primitives)

    • “Adafruit SH1106” (Hardware driver for SH1106)

Option B: U8g2 (Multi-driver support)

  • Search for and install “U8g2” by Oliver Kraus – supports both SSD1306 and SH1106 with many fonts.

Step 2: I2C Address Verification

Most 1.3″ I2C OLED modules use address 0x3C (0x78 write, 0x79 read) . Run this scanner to verify:

cpp
#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("I2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices = 0;
  
  for(address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    
    if(error == 0) {
      Serial.print("I2C device found at address 0x");
      if(address < 16) Serial.print("0");
      Serial.println(address, HEX);
      nDevices++;
    }
  }
  
  if(nDevices == 0) Serial.println("No I2C devices found");
  delay(5000);
}

Step 3: Basic Test Sketch (Adafruit SH1106 – Recommended)

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

// Screen dimensions
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

// Set OLED_RESET to 4 or -1 (if sharing Arduino reset pin) [citation:3]
#define OLED_RESET 4

// Create display object
Adafruit_SH1106 display(OLED_RESET);

void setup() {
  Serial.begin(9600);
  
  // Initialize display with I2C address 0x3C [citation:5]
  if(!display.begin(SH1106_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SH1106 allocation failed"));
    for(;;); // Don't proceed if initialization fails
  }
  
  display.clearDisplay();               // Clear the screen buffer
  display.setTextSize(2);               // Set text size (1 = normal, 2 = double)
  display.setTextColor(WHITE);          // Set text color
  display.setCursor(10, 25);            // Set cursor position (x, y)
  display.println("1.3 OLED");
  display.println("Ready!");
  display.display();                    // Push buffer to screen
}

void loop() {
  // Your code here
}

Step 4: Alternative using U8g2 Library (More Font Options)

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

// U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

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

void loop() {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB08_tr);
    u8g2.drawStr(0, 20, "1.3 OLED!");
    u8g2.drawStr(0, 40, "128x64");
    u8g2.drawStr(0, 60, "SH1106");
  } while ( u8g2.nextPage() );
  delay(1000);
}

Understanding the Display Buffer Workflow

Most OLED libraries use a buffer-based drawing system:

  • Drawing functions write to an in-memory buffer (not directly to the screen)

  • You must call display.display() (Adafruit) or u8g2.nextPage() (U8g2) to transfer the buffer contents to the actual OLED panel

This double-buffering technique prevents screen flicker and allows you to build complex frames efficiently.

Power Management for Battery-Powered Projects

OLED displays are excellent for low-power applications because only lit pixels consume power .

State Approximate Current
All pixels OFF (black screen) <10µA (standby)
Typical text (~25% pixels lit) ~8-12mA
Full screen white (worst case) ~20-25mA

Power-Saving Tips:

  • Update the display only when values change rather than continuously refreshing

  • Use display.ssd1306_command(SSD1306_DISPLAYOFF) to turn the display OFF when not actively needed

  • Avoid displaying large white or high-density areas continuously to maximize battery life

Q: What is the difference between the 1.3" and 0.96" OLED displays?

The 1.3″ version has a larger active area (29.42mm × 14.7mm vs 21.74mm × 10.86mm) while maintaining the same 128×64 resolution, resulting in larger, more readable pixels. Additionally, the 1.3″ typically uses the SH1106 driver, while 0.96″ uses SSD1306 .

Q: Can I use an SSD1306 library with this SH1106 display?

Generally no – the SH1106 has different internal RAM organization (132×64 vs 128×64). Use libraries that explicitly support SH1106, such as Adafruit_SH1106U8g2, or SparkFun Qwiic OLED Library .

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

The default I2C address is 0x3C (write: 0x78, read: 0x79) . Some modules may be configurable for 0x3D via resistor modification.

Q: How many characters can the display show?

With the default 8×8 pixel font, approximately 16 characters × 8 lines = 128 characters total. With larger fonts (e.g., 16×16 pixels), about 8 characters × 4 lines = 32 characters.

Q: What is the lifespan of the OLED display?

Rated lifespan is approximately 20,000-30,000 hours of continuous operation (about 2.5-3.5 years). Avoid displaying static images for extremely long periods to prevent uneven pixel wear .

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

Check these common issues:

  1. Wiring – verify VCC→5V (or 3.3V), GND→GND, SCL→A5, SDA→A4

  2. Use the correct SH1106 library (not SSD1306 library)

  3. Confirm I2C address (run I2C scanner – should be 0x3C)

  4. Ensure display.display() is called after drawing commands

Q: Can I use both 3.3V and 5V logic?

Yes, the module is designed with a wide voltage range of 3.3V–5V. It works with both 5V (Arduino) and 3.3V (ESP32/ESP8266) microcontrollers .

Q: Can I use this display with ESP32 or ESP8266?

Yes. Use 3.3V power. Connect SDA to GPIO21 (ESP32) or GPIO4 (ESP8266), and SCL to GPIO22 (ESP32) or GPIO5 (ESP8266). The same libraries work on these platforms.

Q: Does this module have a reset pin?

This 4-pin I2C version does not have a separate reset pin; the SH1106 is reset through I2C commands. In code, set OLED_RESET to -1 for no hardware reset connection .

Q: How much current does the display draw?

Power consumption depends on how many pixels are lit:

  • Typical text/dashboard (~25% pixels lit): ~8-12mA

  • Full screen white: ~20-25mA

  • Display off (standby): <10µA

Q: Can I adjust the display brightness?

The SH1106 supports contrast adjustment through library commands. In Adafruit library, use display.setContrast(value) where value ranges from 0 to 255.

Q: What can I build with this 1.3" OLED display?

 Popular applications include:

  • IoT sensor stations: Display temperature, humidity, and pressure

  • Smart home control panels: System status and device controls

  • Data loggers: Real-time sensor data visualization

  • Diagnostic tools: Battery testers and instrument displays

  • Menu interfaces: Handheld device navigation