

The DollaTek 128x64 OLED Display (SSH1106) is a compact, high-resolution display module that utilizes organic light-emitting diodes (OLED) to produce bright and vivid images. With a resolution of 128x64 pixels, this display is ideal for applications requiring clear and detailed visual output. It supports both I2C and SPI communication protocols, making it compatible with a wide range of microcontrollers, including Arduino, Raspberry Pi, and ESP32.








Below are the key technical details of the DollaTek 128x64 OLED Display:
| Parameter | Specification |
|---|---|
| Manufacturer | DollaTek |
| Part ID | SSH1106 |
| Display Type | OLED (Organic Light-Emitting Diode) |
| Resolution | 128x64 pixels |
| Communication Protocol | I2C, SPI |
| Operating Voltage | 3.3V to 5V |
| Current Consumption | ~20mA (typical) |
| Driver IC | SSH1106 |
| Display Color | Monochrome (White) |
| Dimensions | 27mm x 27mm x 4mm |
The display module has a total of 4 pins for I2C communication and 7 pins for SPI communication. Below is the pinout for both modes:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground (0V reference) |
| 2 | VCC | Power supply (3.3V to 5V) |
| 3 | SCL | Serial Clock Line for I2C communication |
| 4 | SDA | Serial Data Line for I2C communication |
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground (0V reference) |
| 2 | VCC | Power supply (3.3V to 5V) |
| 3 | SCL | Serial Clock Line for SPI communication |
| 4 | SDA | Serial Data Line for SPI communication |
| 5 | RES | Reset pin |
| 6 | DC | Data/Command control pin |
| 7 | CS | Chip Select for SPI communication |
VCC pin to a 3.3V or 5V power source and the GND pin to ground.SCL and SDA pins to the corresponding I2C pins on your microcontroller.SCL, SDA, RES, DC, and CS pins to the appropriate SPI pins on your microcontroller.Adafruit_GFX and Adafruit_SSD1306 libraries via the Arduino Library Manager.SCL and SDA) if not already present.#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Define the OLED display width and height
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// Create an instance of the display object
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
// Initialize the OLED display
if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Halt execution if initialization fails
}
// Clear the display buffer
display.clearDisplay();
// Display a welcome message
display.setTextSize(1); // Set text size to 1 (smallest)
display.setTextColor(SSD1306_WHITE); // Set text color to white
display.setCursor(0, 0); // Set cursor to top-left corner
display.println(F("Hello, OLED!")); // Print message
display.display(); // Update the display with the buffer
}
void loop() {
// Add your code here to update the display dynamically
}
Display Not Turning On:
VCC and GND).No Output on the Display:
0x3C) matches the one in your code.Adafruit_GFX and Adafruit_SSD1306) are installed.Flickering or Unstable Display:
Library Initialization Fails:
SSH1106 and not SSD1306. If using a different driver, modify the library accordingly.Q: Can this display work with 3.3V microcontrollers like ESP32?
A: Yes, the display is compatible with both 3.3V and 5V systems.
Q: How do I switch between I2C and SPI modes?
A: The display module typically has solder jumpers on the back to select the communication mode. Refer to the module's datasheet for details.
Q: Can I use this display for animations?
A: Yes, the display supports fast refresh rates, making it suitable for simple animations and dynamic content.
Q: Is the display sunlight-readable?
A: The OLED display is bright but not optimized for direct sunlight readability. Use it in shaded or indoor environments for best results.