Description
🔧 0.91 Inch OLED Display 128×32 – Compact I2C Monochrome Display Module
The 0.91 Inch OLED Display 128×32 is an ultra-compact, high-contrast organic light-emitting diode display featuring 128×32 pixel resolution with white or blue illumination. Based on the SSD1306 driver chip, this self-illuminating display requires no backlight and delivers excellent visibility in all lighting conditions with 160° wide viewing angles. Featuring I2C interface (4-wire connection), low power consumption, crisp graphics capability, and embedded font support, this display is perfect for wearables, compact IoT devices, smart watches, portable projects, sensor readouts, and applications requiring small form factor displays with clear visibility. Compatible with Arduino, ESP32, Raspberry Pi, and most microcontrollers.
✨ Key Highlights
- 📺 128×32 Pixel Resolution – 4096 individual addressable pixels
- 📏 Ultra Compact – 0.91 inch diagonal, tiny form factor
- 💡 Self-Illuminating OLED – No backlight needed, pure blacks
- 🎨 High Contrast – Excellent visibility in all lighting conditions
- 📡 I2C Interface – Only 4 wires needed (VCC, GND, SDA, SCL)
- ⚡ Low Power – ~8-20mA typical (depends on content displayed)
- 👁️ Wide Viewing Angle – 160° viewing with no color shift
- 🔧 SSD1306 Driver – Industry standard, excellent library support
- 💻 Graphics Capable – Display text, icons, shapes, bitmaps
- 💰 Very Affordable – $3-8, best small display option
📊 Technical Specifications
| 📺 Display Type | Organic LED (OLED), monochrome |
| 📏 Screen Size | 0.91 inch diagonal |
| 📊 Resolution | 128×32 pixels (4096 total) |
| 📐 Active Area | ~22.4×11.2mm display area |
| 💡 Color | White or Blue monochrome (varies by model) |
| 💻 Driver IC | SSD1306 (128×64 capable, using 128×32 mode) |
| 📡 Interface | I2C (default) or SPI (some models) |
| 🔌 I2C Address | 0x3C (default) or 0x3D (selectable) |
| ⚡ Operating Voltage | 3.3V – 5V DC (onboard regulator) |
| 🔋 Current Draw | ~8-20mA @ 5V (depends on displayed pixels) |
| 👁️ Viewing Angle | >160° (all directions) |
| 📊 Contrast Ratio | >2000:1 (OLED technology) |
| 🌡️ Operating Temp | -40°C to +70°C |
| 📏 Module Size | ~38×12mm (varies by manufacturer) |
| ⚖️ Weight | ~2-3 grams (ultra lightweight) |
🔌 Pin Configuration (I2C Mode – 4 Pin)
| Pin | Function | Connection |
| GND | Ground | Connect to microcontroller GND |
| VCC | Power Supply | Connect to 3.3V or 5V (onboard regulator) |
| SCL | I2C Clock | Connect to microcontroller SCL pin |
| SDA | I2C Data | Connect to microcontroller SDA pin |
🎯 Perfect For
- ⌚ Wearable Electronics – Smart watches, fitness trackers, badges
- 🌡️ Sensor Displays – Temperature, humidity, pressure readouts
- 📦 Compact IoT Devices – Small form factor projects
- 🔋 Battery Projects – Low power consumption ideal for portable
- 🎮 Mini Gadgets – Compact gaming devices, toys
- 📊 Status Indicators – System status, notifications, alerts
- 🚗 Automotive Displays – Small dashboard readouts
- 🤖 Robot Interfaces – Compact robot status displays
🆚 0.91″ OLED vs Other Small Displays
| Feature | 0.91″ OLED 128×32 | 0.96″ OLED 128×64 | 16×2 LCD |
| Size | ✅ 0.91″ (smallest) | 0.96″ (slightly larger) | ⚠️ 80×36mm (much larger) |
| Resolution | 128×32 pixels | ✅ 128×64 pixels (double) | ⚠️ 32 chars (text only) |
| Graphics | ✅ Yes (full graphics) | ✅ Yes (more area) | ❌ Text + 8 custom chars |
| Visibility | ✅ Excellent (OLED) | ✅ Excellent (OLED) | ⚠️ Good (needs backlight) |
| Power | ✅ ~8-20mA | ~15-30mA | ⚠️ ~50-120mA (backlight) |
| Wiring | ✅ 4 wires (I2C) | ✅ 4 wires (I2C) | ⚠️ 6+ wires (parallel) |
| Price | ✅ $3-5 | $4-8 | $3-8 |
| Best For | ✅ Compact devices | More display area | Simple text display |
✅ Key Advantages
- 📏 Ultra Compact Size – Smallest practical OLED display available
- 💡 Self-Illuminating – No backlight, perfect blacks, infinite contrast
- 👁️ Excellent Visibility – Clear in bright sunlight and darkness
- ⚡ Very Low Power – 8-20mA, perfect for battery projects
- 🔌 Simple Wiring – Only 4 wires via I2C interface
- 🎨 Full Graphics – Display text, shapes, icons, bitmaps, animations
- 📊 High Contrast – >2000:1 contrast ratio, crisp display
- 👁️ Wide Viewing Angle – 160°+ with no color shift
- 💻 Excellent Libraries – Adafruit GFX, U8g2, extensive support
- 💰 Very Affordable – $3-5, best value for small display
⚠️ Important Limitations
- 📏 Small Display Area – Only 128×32 pixels, limited space
- 🎨 Monochrome Only – White or blue, no color capability
- 📊 4 Lines of Text – Maximum ~4 lines of 16-21 characters
- ⏱️ OLED Lifespan – ~10,000-20,000 hours (degrades over time)
- 🔥 Burn-In Risk – Static images can cause permanent ghosting
- 👁️ Small for Some Uses – May be too small for detailed graphics
- 💰 More Expensive Than LCD – Per viewing area (but worth it)
- 🔄 Slower Refresh – I2C limits refresh rate vs SPI (acceptable)
🔧 Arduino Connection Guide
| OLED Pin | Arduino Uno | Arduino Mega | ESP32 |
| GND | GND | GND | GND |
| VCC | 5V (or 3.3V) | 5V (or 3.3V) | 3.3V |
| SCL | A5 | Pin 21 (SCL) | GPIO 22 (default) |
| SDA | A4 | Pin 20 (SDA) | GPIO 21 (default) |
💻 Arduino Code Example (Adafruit Library)
| Basic OLED Display Example | |
|
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { void loop() { |
🎨 Graphics Capabilities
| Text Display | Multiple fonts, sizes 1-3, ~4 lines @ size 1 |
| Shapes | Lines, rectangles, circles, triangles, rounded corners |
| Bitmaps | Custom images, icons, logos (128×32 max) |
| Pixels | Individual pixel control for custom graphics |
| Animations | Simple animations, scrolling text, progress bars |
| Invert Display | Negative mode (black on white) |
📊 Text Display Capacity
| Text Size 1 | 21 characters × 4 lines (smallest, readable) |
| Text Size 2 | 10 characters × 2 lines (medium, clear) |
| Text Size 3 | 7 characters × 1 line (large, bold) |
| Mixed Sizes | Combine different text sizes on same screen |
🔍 Troubleshooting
| Blank Display | Check I2C address (0x3C or 0x3D), verify wiring, power |
| Display Not Found | Run I2C scanner, check SDA/SCL connections, try 3.3V power |
| Partial Display | Verify code uses 128×32, not 128×64 resolution |
| Flickering | Add display.clearDisplay() before each update |
| Dim Display | Pixels degrade over time, OLED aging (replace module) |
| Ghosting/Burn-in | Permanent damage from static images, avoid fixed content |
| Text Garbled | Check resolution setting matches display (128×32) |
| Won’t Compile | Install Adafruit_GFX and Adafruit_SSD1306 libraries |
💡 Pro Tips
- 📊 Use Size 1 Text – Maximum 4 lines of text, best space usage
- 🔄 Avoid Static Images – Prevent OLED burn-in, vary content
- ⚡ clearDisplay() Each Time – Clear before updating to prevent artifacts
- 💻 display.display() Required – Must call to update screen (buffered)
- 🎨 Invert for Variety – display.invertDisplay() for negative mode
- 📏 Plan Layout First – 128×32 is small, design carefully
- 🔋 Power from 3.3V – Lower power consumption than 5V
- ⏱️ Screen Timeout – Turn off display when idle to extend lifespan
📦 Installing Arduino Libraries
| Required Libraries | Adafruit_GFX + Adafruit_SSD1306 |
| Installation | Arduino IDE → Tools → Manage Libraries → Search “SSD1306” |
| Alternative | U8g2 library (more efficient, different syntax) |
| Dependencies | Adafruit_GFX automatically installed with SSD1306 |
🎓 Example Projects
- 🌡️ Temperature Display – DHT11/DHT22 sensor with OLED readout
- ⌚ Digital Clock – RTC module + OLED for time/date display
- 📊 System Monitor – CPU/RAM usage, IP address display
- 🔋 Battery Monitor – Voltage, percentage, status indicator
- 🎮 Mini Games – Pong, Snake, simple arcade games
- 📏 Ultrasonic Distance – HC-SR04 sensor with visual display
- 💓 Heart Rate Monitor – Pulse sensor with BPM display
- 🌡️ Weather Station – Multi-sensor compact display
🎨 Advanced Graphics Example
| Drawing Shapes & Icons | |
|
void drawInterface() { display.clearDisplay(); // Draw temperature icon (thermometer) display.drawRect(10, 5, 8, 20, SSD1306_WHITE); display.fillCircle(14, 27, 4, SSD1306_WHITE); // Display temperature value display.setTextSize(2); display.setCursor(25, 10); display.print(“25.3C”); display.display(); } |
📦 Package Contents (Typical)
- ✅ 1x 0.91″ OLED Display Module 128×32 (SSD1306)
- ✅ 4-pin header (usually pre-soldered)
- ✅ White or Blue OLED (varies by listing)
- ⚠️ Note: Jumper wires not included
- ⚠️ Note: Arduino/microcontroller sold separately
- ⚠️ Note: Some modules require header soldering
- ⚠️ Note: I2C interface (SPI available on some models)
🔋 Power Consumption Details
| All Pixels OFF | ~8mA @ 5V (minimum) |
| Typical Display | ~12-15mA @ 5V (mixed content) |
| All Pixels ON | ~20mA @ 5V (maximum) |
| At 3.3V | ~6-15mA (lower power) |
| Sleep Mode | ~10µA (display off, circuit active) |
| Power Saving | Turn off display when not needed |
💰 Cost & Availability
| 0.91″ OLED 128×32 | $3-5 (most affordable OLED) |
| 0.96″ OLED 128×64 | $4-8 (double resolution) |
| 1.3″ OLED 128×64 | $8-12 (larger screen) |
| Availability | Widely available online (AliExpress, Amazon, eBay) |
🔧 Compatible Platforms
- ✅ Arduino – Uno, Nano, Mega, Due, Leonardo (all models)
- ✅ ESP8266/ESP32 – WiFi IoT projects, native I2C
- ✅ Raspberry Pi – Python libraries available
- ✅ STM32 – ARM Cortex microcontrollers
- ✅ Teensy – High-performance boards
- ✅ PIC – Microchip microcontrollers
- ✅ AVR – ATmega, ATtiny series
- ✅ MicroPython – ESP32, Raspberry Pi Pico
⚙️ I2C Address Selection
| Default Address | 0x3C (most common) |
| Alternate Address | 0x3D (some models have solder jumper) |
| Address Change | Requires soldering jumper on back of module |
| Find Address | Use I2C scanner sketch to detect |
🎓 Screen Layout Tips
- 📊 Line 1 (Pixels 0-7) – Title or header text (size 1)
- 📊 Line 2 (Pixels 8-15) – Main data display (size 1-2)
- 📊 Line 3 (Pixels 16-23) – Secondary info (size 1)
- 📊 Line 4 (Pixels 24-31) – Status or time (size 1)
- 🎨 Icons on Left – Use first 16-20 pixels for small icons
- 📏 Center Large Text – Calculate position for centered display
- 📊 Progress Bars – Use rectangle/fill functions for visual feedback
⏱️ Display Lifespan & Care
| Expected Lifespan | ~10,000-20,000 hours continuous use |
| Brightness Degradation | Gradual dimming over time (OLED aging) |
| Burn-in Prevention | Avoid static images, vary displayed content |
| Screen Timeout | Turn off after 30-60 seconds idle to extend life |
| Reduce Brightness | Lower contrast setting when possible |
🛡️ Product Information
✅ 0.91 Inch OLED Display Module – 128×32 Pixel Monochrome Display
✅ Display technology: Organic LED (OLED), self-illuminating, no backlight
✅ Screen size: 0.91 inch diagonal, Active area: ~22.4×11.2mm
✅ Resolution: 128×32 pixels (4096 individually addressable pixels)
✅ Color: White or Blue monochrome (varies by model listing)
✅ Driver IC: SSD1306 (industry standard, excellent library support)
✅ Interface: I2C (4-wire: VCC, GND, SDA, SCL), SPI available on some models
✅ I2C address: 0x3C default (0x3D selectable via solder jumper)
✅ Operating voltage: 3.3V – 5V DC (onboard voltage regulator)
✅ Current consumption: ~8-20mA @ 5V (depends on displayed content)
✅ Viewing angle: >160° (all directions, no color shift)
✅ Contrast ratio: >2000:1 (OLED technology)
✅ Module size: ~38×12mm, Weight: ~2-3 grams
✅ Operating temperature: -40°C to +70°C
⚠️ Important: Requires Adafruit_SSD1306 and Adafruit_GFX libraries (or U8g2). Arduino Uno: SDA=A4, SCL=A5. Initialize with: display.begin(SSD1306_SWITCHCAPVCC, 0x3C). Must call display.display() to update screen (buffered). Text capacity: Size 1 = ~21 chars × 4 lines. Graphics capable: text, shapes, bitmaps, icons. OLED lifespan: ~10,000-20,000 hours – avoid static images to prevent burn-in. Power consumption depends on lit pixels (black=off, white=on). Can power from 3.3V or 5V. Lower brightness extends lifespan. Perfect for compact projects – smallest practical OLED. Compatible with Arduino, ESP32, Raspberry Pi, most microcontrollers. Best libraries: Adafruit SSD1306 (easy) or U8g2 (efficient). Best for: Wearables, compact IoT, sensor displays, battery projects, status indicators. Not suitable for: Detailed graphics (too small), color display needs, high-speed video.










