Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

Arduino UNO SSD1306 OLED: Wire and Display Text | ShillehTek

July 29, 2026 36 views

Arduino UNO SSD1306 OLED: Wire and Display Text | ShillehTek
Project

Wire a 0.91 inch SSD1306 128x32 I2C OLED to an Arduino UNO and display crisp text using U8g2, with a simple four-wire hookup from ShillehTek.

20 min Beginner3 parts

Project Overview

Arduino UNO + 0.91 inch SSD1306 OLED: In this guide, you will wire a 128x32 SSD1306 I2C OLED display to an Arduino UNO and upload a U8g2 sketch to show crisp text on the screen.

This slim monochrome OLED is common in compact gadgets because each pixel emits its own light, so contrast stays high in the dark and power draw is typically lower than an LCD with a backlight. The SSD1306 controller uses I2C, so you only need four connections.

  • Time: 20 to 30 minutes
  • Skill level: Beginner
  • What you will build: A working 128x32 OLED readout on an Arduino UNO-class board.
Arduino UNO connected to a 0.91 inch SSD1306 128x32 I2C OLED display module
The 0.91 inch OLED: 128x32 self-illuminated pixels over I2C.

Parts List

From ShillehTek

External

  • USB cable for the Arduino - for power and uploading the sketch.

Note: The module runs on DC 3.3 to 5V, so it works unmodified with Arduino, ESP32, and Raspberry Pi Pico boards.

Step-by-Step Guide

Step 1 - Know the Four Pins

Goal: Identify the interface and what each pin does.

What to do: The header carries GND, VCC (3.3 to 5V), SCL (clock), and SDA (data). This is a standard I2C device.

0.91 inch SSD1306 OLED pinout showing GND, VCC, SCL, and SDA labels
GND, VCC, SCL, SDA.

Expected result: You can match each OLED pin to the correct Arduino connection.

Step 2 - Wire It to the UNO

Goal: Make the four I2C connections between the OLED and Arduino UNO.

What to do: Wire the OLED to the Arduino UNO I2C pins (A4 SDA and A5 SCL):

OLED GND -> Arduino GND
OLED VCC -> Arduino 5V
OLED SCL -> Arduino A5
OLED SDA -> Arduino A4
Wiring table for SSD1306 OLED to Arduino UNO showing SDA to A4 and SCL to A5
The wiring at a glance.
Breadboard wiring diagram showing Arduino UNO connected to a 0.91 inch SSD1306 I2C OLED display
Hardware wiring complete. Connect USB next.

Expected result: The display is connected to the Arduino UNO I2C bus.

Step 3 - Install the U8g2 Library

Goal: Add a graphics library that supports SSD1306 OLED displays.

What to do: Install U8g2 from the Arduino Library Manager (search for "U8g2"). You can also use Sketch → Include Library → Add .ZIP Library if you have the ZIP file.

Arduino IDE menu showing Add .ZIP Library used to install U8g2
Add .ZIP Library and select U8g2.

Expected result: U8g2 is installed and available for your sketches.

Step 4 - Upload the Starter Sketch

Goal: Draw text on the 128x32 OLED using the correct U8g2 constructor.

What to do: Select Arduino UNO (or your Nano) and the correct COM port, then upload this starter sketch. This example uses the SSD1306 128x32 hardware I2C constructor:

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

// SSD1306 128x32, hardware I2C
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);

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

void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0, 12, "Hello from the");
  u8g2.drawStr(0, 28, "0.91in 128x32 OLED");
  u8g2.sendBuffer();
  delay(1000);
}
Arduino IDE Tools menu showing Arduino UNO board selection and COM port selection for uploading
Select the correct board and port.
Arduino IDE uploading a sketch to an Arduino UNO to drive an SSD1306 OLED
Upload the sketch.

Expected result: The sketch compiles and uploads successfully.

Step 5 - Verify the Display Output

Goal: Confirm the OLED is working and rendering text.

What to do: After the upload, the display should light up and show the text. From here, you can swap fonts, draw lines and boxes with U8g2 primitives, or display live values from sensors.

0.91 inch SSD1306 OLED displaying sample text from an Arduino UNO sketch
Text on the 0.91 inch panel.
128x32 SSD1306 OLED showing a different text layout rendered by Arduino
Different fonts, same four wires.
0.91 inch SSD1306 OLED showing simple graphics drawn with the U8g2 library on Arduino
U8g2 handles graphics too.
Arduino UNO running the sample U8g2 sketch on a 0.91 inch SSD1306 128x32 OLED display
Running the sample sketch.

Expected result: A bright, sharp 128x32 display showing your text.

Conclusion

You connected a 0.91 inch SSD1306 128x32 OLED to an Arduino UNO over I2C, installed the U8g2 library, and uploaded a sketch that renders text on the display. With only four wires, it is a clean way to add a compact status readout to your projects.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.