2.42-inch 128×64 PM OLED Display Module – Blue, SSD1309 Driver, I2C Interface, 3.3V, 5-Pin (GND/VCC/SCL/SDA/RES)

SKU: FA2130-6-1-3
Display Type

Passive Matrix OLED (PMOLED)

Driver IC

SSD1309

Resolution

128 × 64 pixels

Display Color

Blue

Contrast Ratio

10,000:1

Active Area (W × H)

55.01 × 27.49 mm

Module Dimensions (W × H)

60.5 × 37.0 × 2.15 mm

Pixel Pitch (W × H)

0.43 × 0.43 mm

Pixel Size (W × H)

0.40 × 0.40 mm

Default I2C Address

0x3C (configurable to 0x3D via DC pin)

Logic Supply Voltage (VDD)

2.8V – 3.3V DC (3.3V typical)

Logic I/O Compatibility

3.3V logic, 5V tolerant for I2C lines

Operating Temperature

-40°C to +85°C

Storage Temperature

-40°C to +85°C

Interface

I2C (5-pin: GND, VCC, SCL, SDA, RES)

Product Overview

The 2.42-inch Passive Matrix OLED Display Module is a large-format, high-contrast monochrome graphic display designed for embedded systems, industrial control panels, medical equipment, and IoT devices. Powered by the SSD1309 driver IC and featuring a crisp 128×64 pixel resolution, this display delivers bright blue text, detailed graphics, and custom icons on a true black background — all in a spacious 2.42-inch diagonal format.

Why the SSD1309 Controller? Unlike the common SSD1306 controller used on smaller OLEDs, the SSD1309 is specifically designed for larger OLED panels. Key advantages include:

  • Higher row drive current for brighter, more uniform illumination across the larger screen area

  • External boost regulator to generate the higher voltage needed for 2.42″ panels

  • Command compatibility with SSD1306, making library migration simple

The 5-pin I2C interface (GND, VCC, SCL, SDA, RES) requires only two data lines to connect to your microcontroller, preserving valuable I/O pins for other peripherals. A dedicated RES (reset) pin allows hardware initialization for reliable startup.

This module works with 3.3V logic systems (ESP32, ESP8266, STM32, Raspberry Pi). The I2C lines are 5V tolerant, making it safe for direct connection to 5V Arduino boards — provided VCC is supplied with 3.3V.

Key Features

  • Large 2.42-Inch Active Area: 55.01 × 27.49mm display area — approximately 6 times larger than 0.96″ OLEDs, providing significantly more screen real estate for dashboards, data visualization, and UI elements

  • Blue Monochrome OLED: Bright blue pixels on true black background provide exceptional contrast (10,000:1) and a distinctive, modern appearance

  • SSD1309 Driver IC: Advanced controller specifically designed for larger OLED panels, featuring 128 × 64-bit SRAM buffer and 256-step contrast control

  • 5-Pin I2C Interface: Pins GND, VCC, SCL, SDA, RES — requires only 2 data lines with default address 0x3C, saving GPIO pins

  • Dedicated RESET Pin: Hardware reset control for reliable display initialization; requires 10kΩ pull-up to VCC

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

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

  • Ultra-Thin COG Construction: Chip-on-Glass design with 2.15mm thickness, ideal for portable devices and space-constrained installations

  • Low Power Consumption: Only lit pixels consume power — ideal for battery-powered projects

Technical Specifications

Parameter Operating Value
Display Type Passive Matrix OLED (PMOLED)
Driver IC SSD1309
Resolution 128 × 64 pixels
Display Color Blue
Contrast Ratio 10,000:1
Active Area (W × H) 55.01 × 27.49 mm
Module Dimensions (W × H) 60.5 × 37.0 × 2.15 mm
Pixel Pitch (W × H) 0.43 × 0.43 mm
Pixel Size (W × H) 0.40 × 0.40 mm
Default I2C Address 0x3C (configurable to 0x3D via DC pin)
Logic Supply Voltage (VDD) 2.8V – 3.3V DC (3.3V typical)
Logic I/O Compatibility 3.3V logic, 5V tolerant for I2C lines
Operating Temperature -40°C to +85°C
Storage Temperature -40°C to +85°C
Interface I2C (5-pin: GND, VCC, SCL, SDA, RES)

Pinout & Connection Guide

The module features a 5-pin I2C interface. Pin order may vary between manufacturers — always verify the silkscreen on your specific module.

Pin Definitions (5-Pin)

Pin Label Function Description
1 GND Ground Connect to power supply ground
2 VCC Logic Power 3.3V DC power input — DO NOT USE 5V
3 SCL I2C Clock Line Connect to SCL pin of microcontroller (3.3V logic input)
4 SDA I2C Data Line Connect to SDA pin of microcontroller (3.3V logic input)
5 RES / RST Reset (active low) Hardware reset; connect to MCU GPIO with 10kΩ pull-up to VCC

⚠️ Critical Wiring Notes

  1. VCC must be 3.3V only — do not connect to 5V

  2. RES pin requires a 10kΩ pull-up to VCC for reliable operation

  3. The I2C lines (SDA/SCL) are 5V tolerant, so direct connection to 5V Arduino is safe for the I2C signals — but VCC must still be 3.3V

RESET Pin Configuration

The RES pin is critical for reliable operation. The module requires a proper reset signal to initialize correctly:

  • Recommended: Connect RES to a microcontroller GPIO pin with a 10kΩ pull-up resistor to VCC

  • The GPIO should drive the pin HIGH during normal operation

  • Some modules may require the RES pin to be toggled (HIGH → LOW → HIGH) during initialization

I2C Address Configuration

The I2C address is determined by the DC pin state (configured via PCB resistors):

DC Pin State I2C Address (7-bit) 8-bit Write Address
Low (GND) 0x3C 0x78
High (VCC) 0x3D 0x7A

For this blue module, the default configuration is typically 0x3C.

Wiring Examples

Wiring to ESP32 (3.3V — Recommended)

OLED Module ESP32 Pin
VCC 3.3V
GND GND
SCL GPIO22 (SCL)
SDA GPIO21 (SDA)
RES GPIO4 (with 10kΩ pull-up to 3.3V)

Wiring to Arduino Uno (5V — I2C lines only)

⚠️ VCC must be 3.3V — do not use the Arduino’s 5V pin

OLED Module Arduino Uno Pin Notes
VCC 3.3V pin (or external 3.3V regulator) Use 3.3V only
GND GND
SCL A5 (SCL) 5V tolerant — safe
SDA A4 (SDA) 5V tolerant — safe
RES D9 (with 10kΩ pull-up to 3.3V) Pull-up to 3.3V, not 5V

Wiring to Raspberry Pi

OLED Module Raspberry Pi Pin
VCC Pin 1 (3.3V)
GND Pin 6 (GND)
SCL Pin 5 (GPIO 3 / SCL)
SDA Pin 3 (GPIO 2 / SDA)
RES GPIO 17 (with 10kΩ pull-up to 3.3V)

Usage Guide

Power Supply Considerations

The 2.42″ OLED draws more current than smaller OLEDs due to its larger active area. Typical current draw is around 20-80mA depending on the number of pixels lit. Ensure your 3.3V power source can deliver adequate current. The Arduino Uno’s onboard 3.3V regulator is limited; for reliable operation, use an external 3.3V regulator.

Software Setup (Arduino IDE)

Step 1: Install Required Libraries

The U8g2 library by Oliver Kraus is the most reliable for SSD1309 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: I2C Address Verification

Run this I2C scanner to verify your display’s address before using it:

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);
}

The display should appear at address 0x3C.

Step 3: Basic Test Sketch (U8g2 Library)

This example uses the correct constructor for the 2.42″ SSD1309 display:

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

// Correct constructor for 2.42" 128x64 SSD1309 over I2C
U8G2_SSD1309_128X64_NONAME0_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ 4);  // GPIO4 for RES

void setup() {
  // If RES is connected to a GPIO, set it HIGH
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);
  
  // Initialize the display
  u8g2.begin();
  u8g2.enableUTF8Print();
  u8g2.setFont(u8g2_font_ncenB08_tr);
}

void loop() {
  u8g2.firstPage();                      // Start page loop
  do {
    u8g2.drawStr(0, 15, "2.42 OLED");
    u8g2.drawStr(0, 35, "128x64");
    u8g2.drawStr(0, 55, "SSD1309 - I2C");
    u8g2.drawStr(0, 75, "Blue Display");
  } while ( u8g2.nextPage() );           // Transfer buffer to display
  
  delay(1000);
}

Step 4: Setting I2C Address (If Needed)

If your display responds to address 0x3D instead of 0x3C, adjust the address in code:

cpp
// In setup(), before u8g2.begin()
u8g2.setI2CAddress(0x7A);  // For 7-bit address 0x3D (0x7A is 8-bit)

Alternative: Adafruit Library

The Adafruit_SSD1306 library is command-compatible with SSD1309:

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

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4    // GPIO connected to RES

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("2.42 OLED");
  display.println("SSD1309 Ready!");
  display.display();
}

Raspberry Pi Setup (Python)

  1. Enable I2C: sudo raspi-config → Interface Options → I2C → Yes → Reboot

  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 i2c
from luma.oled.device import ssd1309
from luma.core.render import canvas

# I2C connection (address 0x3C, reset pin 17)
serial = i2c(port=1, address=0x3C, gpio_RST=17)

device = ssd1309(serial, width=128, height=64)

with canvas(device) as draw:
    draw.rectangle(device.bounding_box, outline="white", fill="black")
    draw.text((10, 25), "2.42 OLED", fill="white")
    draw.text((10, 45), "128x64 Ready!", fill="white")

Q: What is the difference between SSD1309 and SSD1306?

The SSD1309 is designed specifically for larger OLED panels (2.42″ and up). Key differences include: higher row drive current for brighter, more uniform illumination; external boost regulator instead of internal charge pump; and command compatibility with SSD1306, making library migration straightforward.

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

Yes, but with important caveats. The I2C lines (SDA/SCL) are 5V tolerant and can be connected directly to 5V pins. However, the VCC pin must be powered with 3.3V — do not apply 5V to VCC. The Arduino Uno’s onboard 3.3V regulator may not supply enough current; use an external 3.3V regulator.

Q: What is the default I2C address?

The default I2C address is 0x3C (7-bit), corresponding to 0x78 (8-bit write address). Some modules can be configured to 0x3D (0x7A) via the DC pin state. Run an I2C scanner to verify your specific module’s address.

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

The display requires a proper reset signal to initialize. Connect the RES pin to a microcontroller GPIO and pull it HIGH to VCC through a 10kΩ resistor. Some modules require the RES pin to be toggled (HIGH → LOW → HIGH) during setup for reliable initialization.

Q: What is the RES pin for and do I need to use it?

The RES pin is used to reset the display driver — it is strongly recommended for reliable operation. The simplest approach is to connect it to a GPIO with a 10kΩ pull-up to VCC and drive it HIGH in your setup code. Do not leave it floating.

Q: How do I use the RES (reset) pin correctly?

The RES pin is active low — pulling it LOW resets the display. For normal operation, it should be pulled HIGH. Connect it to a microcontroller GPIO with a 10kΩ pull-up resistor to VCC (3.3V). In your setup code, set the pin HIGH.

Q: Does this blue display have visible pixel grid lines?

The 2.42″ OLED has a pixel pitch of 0.43mm, which may make individual pixels slightly visible at close viewing distances. This is normal for larger OLED displays and contributes to the classic “digital” appearance.

Q: Can I use this display with MicroPython?

 Yes. The SSD1309 is supported via SSD1306-compatible drivers. For ESP32, use the ssd1306 module with I2C interface:

python
from machine import Pin, I2C
import ssd1306

i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C)
Q: What libraries are recommended for this display?

The U8g2 library by Oliver Kraus is the most reliable for SSD1309 displays, offering extensive font support and proper handling of the SSD1309 controller. The Adafruit_SSD1306 library is also command-compatible and works well.

Q: How do I display Chinese characters or custom fonts?

The U8g2 library supports UTF-8 encoding. Enable with u8g2.enableUTF8Print() and use fonts like u8g2_font_wqy12_t for Chinese characters. For custom fonts, use tools like LCD Image Converter to convert text into bitmap data arrays.