1.3″ Inch Blue SPI OLED LCD Module 6pin SH1106 Chip (with GND VCC SCL SDA RES DC)

SKU: FA2129-1
Display Type

OLED (Organic Light Emitting Diode)

Resolution

128 × 64 pixels

Display Color

Blue (monochrome)

Driver IC

SH1106

Communication Protocol

4-wire SPI (default), can switch to I2C

Active Area (W × H)

29.42mm × 14.7mm

Module Dimensions (W × H)

Approx. 35.4mm × 33.5mm

Pixel Pitch

0.23mm × 0.23mm

Pixel Size

0.21mm × 0.21mm

Operating Voltage (VCC)

3.3V – 5.5V D

Logic Pin Voltage

3.3V only (not 5V tolerant)

Typical Current

~20mA (all pixels on)

Standby Current

<10µA (display off)

Viewing Angle

>160°

Operating Temperature

-40°C to +70°C

Storage Temperature

-30°C to +80°C

Driver Duty

1/64 Duty

Product Overview

The 1.3-inch Blue SPI OLED Display Module is a compact, high-contrast monochrome screen designed for embedded applications requiring crisp visual output and fast refresh rates. 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 .

This 6-pin SPI version offers significantly faster data transfer compared to I2C versions, making it ideal for applications requiring smooth animations, frequent screen updates, or displaying large amounts of data. The dedicated RES (Reset) and DC (Data/Command) pins provide full independent control of the display, ensuring reliable operation .

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 (10,000:1 typical), and >160° viewing angles – ensuring the display remains readable from virtually any angle .

The module’s default interface is 4-wire SPI, but it can be switched to 3-wire SPI or I2C by adjusting resistors on the back of the PCB . With support for both 3.3V and 5V power supply, this module works with Arduino (with level shifters for 5V logic), ESP32, ESP8266, STM32, Raspberry Pi, and most other development boards .

Key Features

  • 1.3-Inch Active Area: 29.42mm × 14.7mm 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, custom icons, and up to 8 lines of text

  • Blue Monochrome OLED: Vibrant blue pixels on true black background provide excellent contrast and professional appearance

  • SH1106 Driver IC: Industry-standard controller with built-in 132×64-bit SRAM buffer, designed specifically for 128×64 displays

  • SPI Interface (Fast): 4-wire SPI communication provides faster data transfer than I2C – ideal for animations and frequent screen updates

  • Independent Control Pins: Dedicated RES (Reset) and DC (Data/Command) pins for full display control

  • Dual Communication Options: Supports SPI (default) and I2C (by resistor modification) – flexible for different project needs

  • Wide Voltage Compatibility: Accepts 3.3V–5.5V power supply (VCC) – compatible with both 5V and 3.3V systems

  • ⚠️ Logic Level Warning: SPI logic pins are 3.3V only – use level shifters with 5V microcontrollers

  • Wide Operating Temperature: Rated for -40°C to +70°C, suitable for demanding 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 4-wire SPI (default), can switch to I2C
Active Area (W × H) 29.42mm × 14.7mm
Module Dimensions (W × H) Approx. 35.4mm × 33.5mm
Pixel Pitch 0.23mm × 0.23mm
Pixel Size 0.21mm × 0.21mm
Operating Voltage (VCC) 3.3V – 5.5V DC
Logic Pin Voltage 3.3V only (not 5V tolerant)
Typical Current ~20mA (all pixels on)
Standby Current <10µA (display off)
Viewing Angle >160°
Operating Temperature -40°C to +70°C
Storage Temperature -30°C to +80°C
Driver Duty 1/64 Duty

Pinout & Connection Guide

The 6-pin SPI interface uses standard pin functions for easy connection. Pin labeling may vary slightly between manufacturers; always verify the silkscreen on your specific board.

Pin Definitions (6-Pin)

Pin Label Function Direction Description
1 GND Ground Power Connect to power supply ground
2 VCC Power Supply Power 3.3V – 5.5V DC power input
3 SCL / CLK SPI Clock Input Clock signal for SPI communication
4 SDA / MOSI SPI Data Input Master Out Slave In – data input
5 RES / RST Reset Input Active low reset signal
6 DC Data/Command Input Low = command, High = data

Connection to 3.3V Microcontrollers (ESP32, Raspberry Pi)

Logic voltage matches – direct connection, no level shifters needed.

OLED Pin ESP32 Pin Raspberry Pi Pin (BCM)
VCC 3.3V 3.3V (Pin 1)
GND GND GND (Pin 6)
SCL (CLK) GPIO18 (VSPI SCK) GPIO11 (SCLK)
SDA (MOSI) GPIO23 (VSPI MOSI) GPIO10 (MOSI)
RES Any GPIO (e.g., 4) GPIO25 (Pin 22)
DC Any GPIO (e.g., 2) GPIO24 (Pin 18)

Connection to 5V Microcontrollers (Arduino Uno)

⚠️ CRITICAL: The logic pins (SCL, SDA, RES, DC) are NOT 5V tolerant. You MUST use 3.3V logic level shifters on these pins . VCC power pin IS 5V tolerant and can be connected directly to 5V.

OLED Pin Arduino Uno Pin (via Level Shifter)
VCC 5V (direct connection – safe)
GND GND
SCL (CLK) D13 (after level shifter to 3.3V)
SDA (MOSI) D11 (after level shifter to 3.3V)
RES D9 (after level shifter to 3.3V)
DC D8 (after level shifter to 3.3V)

I2C Mode Modification

The module can be switched to I2C mode by modifying resistors on the back of the PCB :

Communication Mode BS1 BS0
4-wire SPI (Default) 0 0
3-wire SPI 0 1
I2C 1 0

When using I2C mode:

  • Connect SDA to the appropriate data pin and SCL to the clock pin

  • Set DC pin configuration as shown in hardware guide

  • I2C address is typically 0x3C (write) / 0x3D (read) when DC is grounded

Usage Guide

Software Setup (Arduino IDE)

Step 1: Install Required Libraries

The U8g2 library is the most reliable choice for SH1106 SPI 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

Step 2: Basic Test Sketch (U8g2 Library – Hardware SPI)

For ESP32 / 3.3V boards (direct connection):

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

// Hardware SPI mode (6-pin, no CS)
// Constructor: U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI(u8g2, cs, dc, reset)
// Use U8G2_R0 for no rotation, U8G2_R1 for 90°, U8G2_R2 for 180°, U8G2_R3 for 270°
U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI u8g2(/* rotation=*/ U8G2_R0, /* cs=*/ 15, /* dc=*/ 2, /* reset=*/ 4);

void setup() {
  u8g2.begin();                          // Initialize display
  u8g2.enableUTF8Print();                // Enable UTF8 characters if needed
  u8g2.setFont(u8g2_font_ncenB08_tr);    // Choose a suitable font
  u8g2.setDrawColor(1);                  // Set color (1=white/blue, 0=black)
}

void loop() {
  u8g2.firstPage();                      // Start page loop
  do {
    u8g2.drawStr(0, 15, "1.3 OLED");     // Draw text at (x, y)
    u8g2.drawStr(0, 35, "128x64");
    u8g2.drawStr(0, 55, "SH1106");
  } while ( u8g2.nextPage() );           // Transfer buffer to display
  
  delay(1000);
}

Note: If your module has a CS (Chip Select) pin, include it in the constructor as the 3rd parameter. For 6-pin modules without CS (always selected), the U8g2 library may require a dummy pin value.

Step 3: Alternative: U8g2 with Software SPI (Any Pins)

If you prefer not to use hardware SPI pins:

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

// Software SPI pins: (clock, data, cs, dc, reset)
U8G2_SH1106_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

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

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(0, 20, "Hello SH1106!");
  } while ( u8g2.nextPage() );
  delay(1000);
}

Raspberry Pi Setup

  1. Enable SPI via raspi-config → Interface Options → SPI → Yes

  2. Install required libraries:

bash
sudo apt-get install python3-pip
pip3 install luma.oled
  1. Python example code:

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

# SPI connection (CLK=GPIO11, MOSI=GPIO10, DC=GPIO24, RESET=GPIO25)
serial = spi(port=0, device=0, gpio_DC=24, gpio_RST=25)

device = sh1106(serial)

with canvas(device) as draw:
    draw.rectangle(device.bounding_box, outline="white", fill="black")
    draw.text((30, 20), "1.3 OLED", fill="white")
    draw.text((30, 40), "SPI 128x64", fill="white")

Important Note: Charge Pump

For proper operation, the SH1106’s internal charge pump must be enabled. Most libraries do this automatically, but if your display remains off, add:

cpp
u8g2.sendCommand(0x8D);  // Charge pump command
u8g2.sendCommand(0x14);  // Enable charge pump

SH1106 vs SSD1306 Difference

The SH1106 driver has internal RAM of 132×64 pixels, while the visible area is 128×64 pixels. When using the display, note that the column start address needs to be set to 0x02 (unlike SSD1306 which uses 0x00) . Most modern libraries (U8g2, Adafruit_SH110X) handle this automatically.

Power Management for Battery-Powered Projects

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

Only lit pixels consume power, making OLEDs excellent for battery-powered applications.

Q: What is the difference between this 1.3" SPI OLED and the 0.96" version?

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″ often uses SSD1306

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

Most SSD1306 libraries may work, but they may not handle the SH1106’s offset correctly (SH1106 has 132×64 internal RAM with a column start address of 0x02 vs SSD1306’s 0x00) . For guaranteed compatibility, use libraries that explicitly support SH1106, such as U8g2 (recommended) or Adafruit SH110X .

Q: What is the advantage of SPI over I2C for this display?

SPI is significantly faster. SPI allows much faster data transfer, making it ideal for animations, rapid screen updates, or real-time data dashboards. The default interface is 4-wire SPI, offering the best performance .

Q: Can I switch this display to I2C mode?

Yes. The module supports 3-wire SPI, 4-wire SPI, and I2C interfaces. By adjusting the resistors on the back of the PCB, you can switch to I2C mode . The default configuration is 4-wire SPI .

Q: Can I connect this display directly to a 5V Arduino (Uno, Mega, etc.)?

NO! The SPI logic pins (CLK, MOSI, RES, DC) are NOT 5V tolerant and require 3.3V logic. Using 5V directly will damage the display . However, the VCC power pin IS 5V tolerant. You must use 3.3V logic level shifters on SCL, SDA, RES, and DC pins when using 5V microcontrollers .

Q: Can I use this display with ESP32 or Raspberry Pi?

Yes – both ESP32 and Raspberry Pi use 3.3V logic, which matches the display’s requirements for logic signals. Connect directly without level shifters. Use 3.3V power for VCC as well .

Q: Can I power the display from 3.3V instead of 5V?

Yes. VCC accepts 3.3V–5.5V, so 3.3V power works perfectly and may simplify your wiring when using 3.3V logic microcontrollers .

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

Common issues to check:

  1. Logic voltage mismatch – if using 5V Arduino, did you use level shifters?

  2. Wiring – verify VCC power, GND connections

  3. Library initialization – ensure you’re using a SH1106-compatible library

  4. Charge pump – the internal charge pump must be enabled (most libraries handle this)

  5. SPI pins – verify CLK and MOSI are connected to the correct pins

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.