What is the driver IC for a 0.95 inch color OLED?
The driver IC for the vast majority of 0.95 inch color OLED displays on the market today is the Solomon Systech SSD1331. This is a CMOS single-chip driver and controller specifically designed for small, high-resolution, full-color passive matrix OLED panels. If you are looking at a 0.95 inch 96x64 color oled display, you can bet your bottom dollar it’s running on the SSD1331. It’s the industry standard for this form factor, and for good reason. Let’s break down why this chip is so critical, what it actually does under the hood, and how it impacts your design choices.
Why the SSD1331 is the Go-To for 0.95 Inch Panels
The 0.95 inch diagonal size, with a resolution of 96x64 pixels, is a very specific niche. It’s not a common smartphone or tablet panel. It’s used in wearables, smart home devices, medical instruments, and industrial control interfaces where you need a tiny, vibrant color screen. The SSD1331 is purpose-built for this. It directly supports the 96x64 RGB resolution, which is a non-standard resolution that most generic display controllers don’t handle natively. The chip integrates the row and column drivers, the grayscale voltage generator, and the DC-DC converter all on one die. This means you don’t need external boost converters or separate driver ICs for the red, green, and blue sub-pixels. The SSD1331 handles the 262k color depth (18-bit, 6 bits per color) internally, which is typical for these small OLEDs. The panel itself is a passive matrix OLED, not active matrix. That means each pixel is addressed individually by crossing row and column lines. The SSD1331 manages this multiplexing at a high enough refresh rate to avoid flicker, typically 100 frames per second or more, depending on the interface clock speed.
Interface Options and Real-World Performance
One of the most practical details about the SSD1331 is its flexible interface. It supports three main communication protocols: 8-bit parallel 8080-series, 8-bit parallel 6800-series, and serial peripheral interface (SPI). For a 0.95 inch display, the SPI interface is the most common choice because it saves pins on your microcontroller. The SSD1331 supports both 4-wire and 3-wire SPI. The 4-wire version uses CS (chip select), DC (data/command), SCK (serial clock), and MOSI (master out slave in). The 3-wire version is more exotic, using a 9-bit data word to differentiate between commands and data, which saves the DC pin but requires more complex software handling. The maximum SPI clock speed for the SSD1331 is typically 10 MHz to 15 MHz, depending on the specific revision and your board layout. At 10 MHz, you can theoretically update the entire 96x64 frame buffer in about 6 milliseconds, but real-world performance is lower due to overhead and the need for command sequences. The parallel interface is faster, but it eats up 8 data pins plus control pins, which is a dealbreaker for many compact designs. The chip also has a built-in 96x64x18-bit SRAM frame buffer. This is a critical detail because it means the microcontroller does not need to constantly refresh the display. You write the pixel data to the SRAM once, and the SSD1331 handles the continuous scanning of the OLED panel from that internal memory. This drastically reduces the processing load on your main MCU. The chip also supports hardware scrolling and window address mode, which are useful for smooth animations without MCU intervention.
Power Management and Voltage Rails
The SSD1331 operates on a logic supply voltage (VDD) of 2.4V to 3.6V, which is compatible with 3.3V microcontrollers. However, the OLED panel itself requires higher voltages. The chip has an internal charge pump DC-DC converter that generates the necessary voltages for the OLED driver. The typical output for the positive supply (VCC) is around 12V to 15V, and the negative supply (VSS) is around -3V to -5V. These voltages are generated from the single 3.3V input. The charge pump uses external capacitors, typically 1uF ceramic capacitors, placed close to the chip. The efficiency of this charge pump is not stellar, but it’s acceptable for the low power draw of a 0.95 inch panel. The typical power consumption of the entire display module, including the driver IC, is around 20 mA to 30 mA when displaying a full white image at maximum brightness. For a mostly black image, the power consumption drops significantly because OLED pixels only draw power when they are lit. The SSD1331 also has a built-in contrast control register (called the “Master Current” register) that allows you to adjust the overall brightness by setting the peak current delivered to the OLED. This is done via a simple 8-bit value, giving you 256 steps of brightness control. The chip also has a “Display Off” mode that puts the DC-DC converter into a low-power state, dropping the current draw to under 10 uA.
Command Set and Initialization Sequence
You cannot just plug in the SSD1331 and expect it to show a picture. It requires a specific initialization sequence to set up the internal registers. The sequence typically involves sending commands to set the display start line, the segment remap, the COM scan direction, the color depth, and the pre-charge period. The exact sequence is documented in the SSD1331 datasheet, which is available from Solomon Systech. A typical initialization sequence in C code looks like this: first, you send a command to turn off the display. Then you set the display start line to 0. Then you set the segment remap to column address 127 mapped to SEG0 (this is a common setting for landscape orientation). Then you set the COM scan direction to normal. Then you set the color depth to 18-bit (262k colors). Then you set the pre-charge period to 2 clock cycles. Then you set the contrast current. Then you set the VCOMH voltage, which is the voltage for the common electrode. Finally, you turn the display back on. The whole sequence is about 20 to 30 commands. The chip also has a “Display Mode” register that can be set to normal, inverse, or all-on. The inverse mode is useful for debugging or for a simple high-contrast effect. The chip also supports a “Partial Display” mode, where you can define a window of active rows and columns, and the rest of the display is turned off. This can save power if you only need to update a small portion of the screen.
Physical Layout and Pinout Details
The SSD1331 is typically packaged in a COG (chip-on-glass) package. This means the die is bonded directly to the glass substrate of the OLED panel. The chip is tiny, about 2 mm by 3 mm, but it has a large number of output pads. The output pads are connected to the row and column lines of the OLED matrix. The chip has 96 outputs for the segment lines (columns) and 64 outputs for the common lines (rows). It also has separate outputs for the red, green, and blue sub-pixels. The sub-pixels are arranged in a stripe pattern, not a delta pattern, which is typical for small OLEDs. The chip also has a set of input pads for the interface. The typical pinout on a 0.95 inch module includes: VDD (3.3V), GND, CS (chip select), DC (data/command), RES (reset), SCK (serial clock), MOSI (data), and sometimes a VCC pin for the charge pump output (which is not used externally). Some modules also break out the VCOMH pin, which is used for an external capacitor to stabilize the internal voltage. The reset pin is active low and must be held low for at least 10 microseconds to reset the chip. The chip also has a test pin (TEST) that is usually left floating. The layout of the glass substrate is critical for the display quality. The SSD1331 datasheet provides a recommended layout for the ITO (indium tin oxide) traces, including the width and spacing of the traces to minimize crosstalk between adjacent columns. The chip also has a built-in temperature compensation circuit that adjusts the output voltage based on the temperature of the chip. This is important because OLED brightness changes with temperature. The compensation is done via a lookup table inside the chip, and you can enable or disable it via a command.
Comparison with Other Driver ICs
There are a few other driver ICs that can drive a 96x64 color OLED, but they are less common. The Solomon Systech SSD1306 is a monochrome driver, not color. The Solomon Systech SSD1332 is a similar color driver but supports a higher resolution (up to 128x128). The Renesas R61509 is a high-end driver for larger TFTs, not for small OLEDs. The Newhaven Display NHD-1.27-12896G uses a different driver, but that is a 1.27 inch panel. For the 0.95 inch form factor, the SSD1331 is the de facto standard. The chip is also used in many 0.96 inch and 1.0 inch color OLEDs, but the resolution is often 96x96 or 128x64. The 96x64 resolution of the 0.95 inch panel is a sweet spot for the SSD1331 because it uses the full capacity of the driver without wasting any outputs. The chip also has a built-in gamma correction table, but it is fixed. You cannot adjust the gamma curve via software. This is a limitation compared to some more advanced drivers that allow programmable gamma. However, for a small display, the fixed gamma is usually fine. The chip also has a built-in oscillator that generates the internal clock for the display scanning. The frequency of this oscillator is set by an external resistor, typically 10k ohms to 100k ohms. The datasheet provides a graph showing the relationship between the resistor value and the oscillator frequency. The typical frequency is around 2 MHz to 5 MHz.
Common Pitfalls and Design Tips
When working with the SSD1331, there are a few common mistakes. First, the initialization sequence must be followed exactly. If you skip a step, the display may not work or may show garbage. Second, the power supply must be clean. The charge pump draws current in bursts, and if the power supply is noisy, the display may show flicker or banding. Use a 10 uF electrolytic capacitor and a 0.1 uF ceramic capacitor close to the VDD pin. Third, the SPI bus must be properly terminated. Long wires can cause reflections and data corruption. Keep the SPI traces short, ideally under 10 cm. Fourth, the reset pin must be handled correctly. Some microcontrollers have a weak pull-up on the reset pin, but the SSD1331 requires a strong pull-up (10k ohms) to ensure a clean reset. Fifth, the contrast setting should not be set to maximum. The maximum current can damage the OLED panel if sustained for long periods. The typical contrast setting is around 0x80 to 0xC0 (out of 0xFF). The chip also has a “Display RAM” that is organized as 96 columns by 64 rows by 18 bits. The 18 bits are arranged as 6 bits for red, 6 bits for green, and 6 bits for blue. When you write data via SPI, you send 18-bit words, but the SPI interface is 8-bit. So you need to send three bytes per pixel: the first byte is the red data (bits 5-0), the second byte is the green data (bits 5-0), and the third byte is the blue data (bits 5-0). The upper two bits of each byte are ignored. This is a common source of confusion. Some libraries pack the data as 16-bit words (5-6-5 format), but that is not the native format of the SSD1331. You must convert the data to 6-6-6 format.
Real-World Applications and Performance Data
In a typical wearable device, the 0.95 inch OLED with the SSD1331 can display a clock face with 60 frames per second while consuming less than 10 mA of current. The chip supports hardware scrolling, which is useful for displaying text messages. The scrolling can be done in both horizontal and vertical directions. The chip also has a “Window Address Mode” that allows you to define a rectangular area of the screen to update. This is much faster than updating the entire screen. For example, if you only need to update a 10x10 pixel area, you can set the window to that area and send only 300 bytes (10x10x3). The chip also supports a “Read Modify Write” mode, but that is rarely used in practice. The chip also has a “Sleep Mode” that turns off the DC-DC converter and the oscillator, reducing the current draw to less than 1 uA. This is essential for battery-powered devices. The typical wake-up time from sleep mode is about 100 microseconds, which is fast enough for most applications. The chip also has a built-in “Power-on Reset” circuit that initializes the registers to a known state when power is applied. However, it is still recommended to perform a hardware reset via the RES pin during initialization. The chip also has a “Display Off” command that does not turn off the power, but simply stops the scanning of the OLED. This is useful for temporarily blanking the display without losing the frame buffer data.
Technical Specifications Summary
Let’s put some hard numbers on the table. The SSD1331 has a maximum resolution of 96x64 RGB. The color depth is 262k (18-bit). The interface options are 8-bit 8080, 8-bit 6800, and SPI (4-wire and 3-wire). The logic supply voltage is 2.4V to 3.6V. The charge pump output voltage is 12V to 15V. The typical operating current is 20 mA to 30 mA for full white at maximum brightness. The sleep mode current is less than 1 uA. The maximum SPI clock speed is 10 MHz to 15 MHz. The internal oscillator frequency is set by an external resistor, typically 2 MHz to 5 MHz. The frame rate is typically 100 Hz to 120 Hz. The chip is packaged in a COG (chip-on-glass) package. The operating temperature range is -40°C to +85°C. The chip is manufactured by Solomon Systech, a Taiwanese company. The datasheet is publicly available. The chip is also available in a bare die form for direct bonding, but that is only for high-volume production. For hobbyists and low-volume users, the chip is only available as part of a pre-assembled OLED module. The module itself typically includes the OLED panel, the SSD1331 chip, a flex cable, and a connector. The connector is usually a 0.5mm pitch FPC (flexible printed circuit) connector with 16 pins. The pinout is standardized across many manufacturers, but you should always check the datasheet of your specific module. The module also includes external capacitors for the charge pump. The typical capacitance values are 1 uF for the charge pump capacitors and 10 uF for the VDD bypass capacitor. The module also has a built-in level shifter for the SPI signals, but that is not always the case. Some modules require 5V-tolerant inputs, but the SSD1331 itself is not 5V-tolerant. Always check the voltage levels.
Why Not Other Drivers?
You might wonder why you don’t see other driver ICs in this size. The reason is that the 0.95 inch color OLED is a very specific product. The market is dominated by a few manufacturers, and they all use the SSD1331 because it is the most cost-effective solution. The chip is mature, well-documented, and has a large ecosystem of libraries and code examples. The Arduino community, for example, has several libraries for the SSD1331, including the Adafruit SSD1331 library and the U8g2 library. These libraries abstract away the low-level details and provide a simple API for drawing pixels, lines, circles, and text. The chip also supports hardware acceleration for drawing rectangles and filling areas, but these features are not exposed in most libraries. The chip also has a “Color Bar” test mode that can be used to verify the display hardware. The test mode is activated by sending a specific command sequence. The chip also has a “Read Status” register that can be used to check if the chip is busy or if an error has occurred. The chip also has a “Write Data” command that is used to write pixel data to the frame buffer. The chip also has a “Read Data” command that can be used to read back the pixel data from the frame buffer. This is useful for double-buffering or for implementing a screen capture function. The chip also supports a “Non-Continuous” mode for the SPI interface, where the DC pin is toggled between commands and data. This is the most common mode. The chip also supports a “Continuous” mode, where the DC pin is held low for the entire sequence, but this is rarely used. The chip also has a “Dummy Read” command that can be used to synchronize the SPI bus.
Practical Considerations for Your Design
If you are designing a product around a 0.95 inch color OLED, you need to consider the mechanical mounting. The module is typically mounted using a ZIF (zero insertion force) connector or a soldered FPC. The FPC is fragile, so you need to secure it with a stiffener or a clamp. The module also has a protective film on the OLED surface that must be removed before use. The OLED is sensitive to moisture and UV light, so you should consider a cover glass or a protective coating. The module also has a backlight, but that is not relevant for OLEDs because they are self-emissive. The module also has a built-in temperature sensor, but that is not accessible via the SSD1331. The temperature compensation is done internally. The module also has a built-in gamma correction, but it is fixed. The module
Dołącz do społeczności Florydy
Codzienny przewodnik po życiu, pracy i emigracji — wprost od Polaków, którzy już tam są.
Zapisz się na newsletter