1.3″ Inch Blue I2C IIC OLED LCD Module 1106 Driver chip 4pin (with GND VCC SCL SDA)

SKU: FA2128-1
Display Type

OLED (Organic Light Emitting Diode)

Resolution

128 × 64 pixels

Display Color

Blue (monochrome)

Driver IC

SH1106

Communication Protocol

I2C (IIC)

Default I2C Address

0x3C (0x78 write, 0x79 read)

Operating Voltage

3.3V – 5V DC

Typical Current Consumption

20-40mA (depends on pixels lit)

Display Area (W × H)

29.42mm × 14.7mm

Module Dimensions (W × H)

Approx. 35.5mm × 33.5mm

Operating Temperature

-40°C to +70°C

Viewing Angle

>160°

High Resolution

110 DPI (dots per inch)

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 blue text, detailed graphics, and custom icons on a true black background .

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 contrast ratio, and >160° viewing angles – ensuring the display remains readable from almost any angle .

The module uses the ultra-simple 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

  • Larger 1.3-Inch Active Area: 34.5mm × 19mm display area offers better readability than 0.96″ screens while maintaining 128×64 resolution

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

  • SH1106 Driver IC: Industry-standard controller designed for 132×64-bit SRAM (supports 128×64 active area)

  • I2C Interface: 4-pin connection (VCC, GND, SCL, SDA) requires only 2 data lines – 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: No backlight means lower battery drain – ideal for portable and battery-powered projects

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

  • Wide Operating Temperature: Industrial-grade rating of -40°C to +85°C, suitable for various environments

Technical Specifications

Parameter Operating Value
Display Type OLED (Organic Light Emitting Diode)
Resolution 128 × 64 pixels
Display Color Blue (monochrome)
Driver IC SH1106
Communication Protocol I2C (IIC)
Default I2C Address 0x3C (0x78 write, 0x79 read)
Operating Voltage 3.3V – 5V DC
Typical Current Consumption 20-40mA (depends on pixels lit)
Display Area (W × H) 29.42mm × 14.7mm
Module Dimensions (W × H) Approx. 35.5mm × 33.5mm
Operating Temperature -40°C to +70°C
Viewing Angle >160°
High Resolution 110 DPI (dots per inch)
Driver Duty 1/64 Duty

SH1106 vs SSD1306: Important Note

Unlike 0.96″ displays that typically use the SSD1306 driver, this 1.3″ OLED uses the SH1106 driver. The SH1106 has internal RAM of 132×64 pixels (display area is 128×64) – the extra 4 columns are not visible. This difference means that while many SSD1306 libraries will work with SH1106 , for best results use libraries that explicitly support SH1106, such as:

  • Adafruit SH1106 – with GFX library support

  • U8g2 library – supports both SH1106 and SSD1306 with many fonts

  • MycilaEasyDisplay – supports SH1106 for ESP32

Pinout & Connection Guide

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

Pin Label Function Arduino Connection (Uno/Nano)
1 GND Ground GND
2 VCC Power Supply (3.3V – 5V) 5V or 3.3V
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 Power Note
Arduino Uno / Nano A4 A5 Can use 5V
Arduino Mega 2560 20 21 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 (or 3.3V)
GND                  →    GND
SCL                  →    A5
SDA                  →    A4

Note: The display’s logic pins are designed for 3.3V signals. When used with 5V Arduino, the 5V power is acceptable, but the I2C signals should ideally be level-shifted for long-term reliability .

Usage Guide

Software Setup (Arduino IDE)

Step 1: Install Required Libraries

You need graphics and driver libraries for SH1106. Two popular options:

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 with many fonts)

  • Search for and install “U8g2” by Oliver Kraus – supports multiple OLED drivers including SH1106

Step 2: I2C Address Verification

Most 1.3″ I2C OLED modules use address 0x3C . You can verify by running this scanner:

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)

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

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4          // Use -1 if no reset pin

// Create display object (I2C address 0x3C)
Adafruit_SH1106 display(OLED_RESET);

void setup() {
  Serial.begin(9600);
  
  // Initialize display
  if(!display.begin(SH1106_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SH1106 allocation failed"));
    for(;;);
  }
  
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(10, 25);
  display.println("1.3 OLED");
  display.println("Ready!");
  display.display();
}

void loop() {
  // Your code here
}

Step 4: Alternative using U8g2 Library

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

U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

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

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 (e.g., drawPixelprintlnfillRect) write to an in-memory buffer, not directly to the screen

  • The screen does NOT update immediately

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

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

Q: What is the difference between the 1.3" I2C OLED 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 110 DPI . Additionally, the 1.3″ typically uses the SH1106 driver, while 0.96″ often uses SSD1306.

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

Generally yes – many users report that SSD1306 libraries work with SH1106 displays . However, the SH1106 has different internal RAM organization (132×64 vs 128×64). For guaranteed compatibility, use libraries that explicitly support SH1106, such as Adafruit_SH1106U8g2, or MycilaEasyDisplay .

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

The default I2C address is 0x3C (7-bit address). When configured for I2C mode, the DC pin (when present) determines the address – connected to GND gives 0x3C; to VCC gives 0x3D .

Q: How does OLED technology compare to LCD?

OLEDs are self-emissive (no backlight needed), providing true blacks, higher contrast ratio, wider viewing angles (>160°), and lower power consumption. Traditional LCDs require a backlight that constantly draws power and cannot achieve true black.

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 (“burn-in”).

Q: How much current does the OLED display draw?

Power consumption depends on how many pixels are lit:

  • Typical text/dashboard (~25% pixels lit): ~20mA

  • All pixels ON (full screen white): ~40mA

  • Display off (standby): minimal

Q: Can I adjust the display brightness?

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

Q: Is this display readable in direct sunlight?

OLEDs have excellent contrast, making them readable in most lighting conditions. However, like all emissive displays, direct bright sunlight may reduce perceived contrast compared to reflective LCDs.

Q: Can I use this display with 3.3V logic microcontrollers?

Yes, the display is designed to work with 3.3V logic. For ESP32, ESP8266, and Raspberry Pi, connect VCC to 3.3V and SDA/SCL directly to GPIO pins.

Q: Does this module have pull-up resistors for I2C?

Most modules include onboard pull-up resistors. If your specific module doesn’t have them, you may need to add external 4.7kΩ-10kΩ pull-up resistors on SDA and SCL lines to VCC.

Q: What should I do if my display stays blank after power-up?

Check these common issues:

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

  2. Confirm I2C address using scanner sketch (should be 0x3C)

  3. Ensure display initialization is called before drawing

  4. Call display.display() after drawing operations

  5. Try adjusting contrast setting in code

Q: Can I use this display with Raspberry Pi?

Yes. Enable I2C via raspi-config, then connect VCC to 3.3V (Pin 1), GND to GND, SCL to GPIO3 (Pin 5), and SDA to GPIO2 (Pin 3). Use Python libraries like luma.oled or Adafruit_CircuitPython_SSD1306.

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

Popular applications include:

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

  • 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

  • Wearable devices: Compact displays for wearables

  • Retro gaming: Small game displays

Q: What libraries are recommended for beginners?

For beginners, the Adafruit SH1106 library (with Adafruit GFX) is well-documented and easiest to get started. U8g2 offers more font options but has a slightly steeper learning curve. Both are available through the Arduino Library Manager.

Q: Can I display custom bitmap images on this display?

Yes. Use tools like LCD Image ConverterImage2CPP, or online converters to transform 128×64 monochrome bitmap images into C arrays. In Adafruit library, use display.drawBitmap(x, y, array, width, height, color) to display images.