The driver chip for a 2.42 inch 128x64 OLED display is almost always the SSD1309 or the SH1106, depending on the specific module design and manufacturer. For the vast majority of monochrome passive matrix OLED panels in this size class, the SSD1309 is the dominant controller, especially for SPI-based modules. The SSD1309 is a single-chip CMOS OLED driver designed by Solomon Systech, capable of driving up to 128 segments and 64 commons, which exactly matches the 128x64 pixel resolution. It integrates a 128x64-bit SRAM for display data storage, supports both 6800/8080 parallel and serial peripheral interface (SPI) communication, and operates at a supply voltage range of 1.65V to 3.3V for the logic core, with a separate 7V to 15V charge pump for the OLED panel bias. The SH1106, on the other hand, is a similar driver from Sino Wealth, but it uses a 132x64-bit RAM internally, which means it requires a different initialization sequence and has a slightly different command set. Many 2.42-inch modules that claim SH1106 compatibility actually use the SSD1309 with a firmware workaround, but the genuine SSD1309 is more common in newer production runs. If you are looking for a reliable module, check the datasheet or the silk screen on the PCB; the 2.42 inch 128x64 oled display typically uses the SSD1309 driver, which offers better contrast uniformity and lower power consumption compared to older SH1106 variants. The SSD1309 supports a maximum frame rate of 100 Hz, a contrast control range of 256 steps, and a built-in DC-DC converter that eliminates the need for external high-voltage supplies. The charge pump generates up to 15V from a 3.3V input, with a typical efficiency of 85% under normal load. The display matrix itself is fabricated using a low-temperature polysilicon (LTPS) TFT process, which enables a pixel pitch of about 0.41 mm, resulting in a total active area of roughly 53.2 mm by 26.3 mm. The pixel response time is under 10 microseconds, which is orders of magnitude faster than LCDs, making it suitable for fast-moving graphics or text scrolling. The driver chip communicates via a 4-wire SPI interface at speeds up to 10 MHz, though some modules support 3-wire SPI (with a 9-bit command/data protocol) or I2C at 400 kHz. The SSD1309 also includes a programmable display offset, segment remapping, and COM scan direction, allowing for flexible orientation adjustments without physically rotating the module. The internal oscillator runs at 680 kHz typical, but you can adjust the display clock divide ratio to fine-tune the frame rate for flicker-free operation. The charge pump frequency is also programmable, typically set to 7.5 kHz, to minimize electromagnetic interference. The driver chip consumes about 0.5 mA in idle mode and up to 20 mA when all pixels are lit at maximum brightness, depending on the OLED panel efficiency. The panel itself uses a yellow-blue or white color scheme, with a typical luminance of 100 cd/m² at a contrast setting of 0x7F. The viewing angle is nearly 180 degrees, with a contrast ratio exceeding 2000:1 under ambient light. The SSD1309 supports a partial display mode, where only a portion of the RAM is refreshed, reducing power consumption by up to 50% in static image applications. It also includes a hardware vertical scrolling feature, which can shift the display content without CPU intervention, useful for scrolling text lines or status bars. The driver chip has a built-in temperature sensor, but it is not calibrated for absolute accuracy; it is primarily used for automatic contrast compensation, adjusting the display brightness based on ambient temperature changes. The OLED panel itself has a lifetime of about 50,000 hours to half-brightness under typical operating conditions, which is longer than many consumer-grade LCDs. The driver chip interfaces with microcontrollers like Arduino, ESP32, STM32, or Raspberry Pi via standard SPI pins: CS, DC, MOSI, SCK, and RESET. The initialization sequence for the SSD1309 involves setting the multiplex ratio to 64, the display offset to 0, the start line to 0, the segment remap to column 127, the COM scan direction to remapped mode, the COM pins hardware configuration to alternative pin configuration, the contrast to 0x7F, the charge pump to enable, the display clock divide ratio to 0x80, the pre-charge period to 0x22, the VCOMH deselect level to 0x20, and the memory addressing mode to horizontal or page mode. The SH1106, in contrast, uses a 132x64 RAM mapping, so the segment remap and page addressing require different offsets. The SSD1309 also supports a low-power sleep mode, where the charge pump is disabled and the oscillator stops, reducing current consumption to under 1 µA. The driver chip is packaged in a COG (chip-on-glass) or COB (chip-on-board) format, with the die directly bonded to the glass substrate or a small PCB. The COG version is more common in 2.42-inch modules because it minimizes the bezel width and allows for a thinner profile. The glass substrate is typically 0.7 mm thick, with a total module thickness of about 1.5 mm including the polarizer. The driver chip has a maximum operating temperature range of -40°C to +85°C, making it suitable for industrial or outdoor applications. The display module also includes a built-in level shifter for the SPI lines, so it can tolerate 5V logic inputs even though the core runs at 3.3V. The SSD1309 is pin-compatible with the SSD1306, but the SSD1306 is limited to 128x64 resolutions and does not support the same charge pump voltage range. The SSD1309 is actually a superset of the SSD1306, with additional features like a wider segment driver range and better charge pump efficiency. The 2.42-inch 128x64 OLED module typically has a 16-pin or 7-pin interface, depending on whether it uses SPI or I2C. The 16-pin version includes parallel interface options, but most hobbyist modules use the 4-wire SPI configuration. The pinout for the SPI version is: GND, VCC (3.3V or 5V), D0 (SCK), D1 (MOSI), RES (reset), DC (data/command), CS (chip select), and sometimes a BS1/BS2 pin for interface selection. The BS1 and BS2 pins are usually tied to VCC or GND to select the interface mode; for SPI, BS1 is high and BS2 is low. The driver chip also supports a hardware reset pin, which must be pulled low for at least 3 microseconds to initialize the internal registers. The reset sequence clears the RAM and sets all registers to default values, which is critical for reliable startup. The SSD1309 has a built-in 128x64-bit SRAM that is organized as 8 pages of 128 bytes each. Each page corresponds to 8 rows of pixels, so page 0 covers rows 0-7, page 1 covers rows 8-15, and so on. The memory addressing mode can be set to horizontal, vertical, or page mode, which affects how the data is written to the RAM. In horizontal mode, the column address increments automatically after each byte, and the page address increments after the column reaches 127. In vertical mode, the page address increments first, and the column address increments after the page reaches 7. In page mode, the column address increments but the page address does not change until you send a new page command. The driver chip also supports a display RAM read-back feature, which allows you to read the current pixel data from the RAM, but this is rarely used in practice due to the slower SPI read speed. The charge pump section of the SSD1309 uses a switched-capacitor voltage multiplier, which generates the high voltage needed for the OLED anode. The charge pump output voltage is typically 7.5V to 8.5V for the OLED bias, but the exact voltage depends on the panel design and the contrast setting. The charge pump has a built-in soft-start feature to limit inrush current during startup, which prevents voltage drops on the power supply. The driver chip also includes a voltage regulator for the internal logic, which maintains a stable 1.65V core voltage even if the input voltage varies. The display module typically includes a 1 µF and a 10 µF capacitor on the VCC and charge pump output lines to filter noise. The OLED panel itself is a passive matrix, meaning each pixel is controlled by the intersection of a row and column electrode. The driver chip sequentially scans the rows, applying a voltage to the selected row while the column drivers output the pixel data. The typical frame rate is 60 Hz, but you can increase it to 100 Hz by adjusting the display clock divide ratio. The SSD1309 supports a pre-charge period, which is a short time before the actual pixel drive where the column lines are pre-charged to a reference voltage to improve response time. The pre-charge period is programmable from 1 to 15 clock cycles, with a default of 2 cycles. The VCOMH deselect level is the voltage applied to the non-selected rows, which affects the contrast and ghosting. The default VCOMH level is 0.86x VCC, but you can adjust it to 0.77x or 0.92x VCC for different panel characteristics. The driver chip also includes a display start line register, which allows you to shift the display vertically by setting the start line from 0 to 63. This is useful for scrolling or for adjusting the vertical alignment without changing the physical orientation. The SSD1309 supports a segment remap feature, which reverses the column order, and a COM scan direction feature, which reverses the row order. These features are useful when the display is mounted upside down or in a mirror configuration. The driver chip has a built-in contrast control register, which sets the peak current for the OLED pixels. The contrast value ranges from 0x00 to 0xFF, with 0x7F being the default. Higher contrast values increase the brightness but also increase power consumption and reduce the OLED lifetime. The typical contrast setting for a 2.42-inch module is 0x7F to 0x9F, depending on the ambient light conditions. The driver chip also includes a fade-out and fade-in feature, which gradually changes the contrast over a programmable number of frames. This is useful for power-saving animations or for transitioning between screens. The SSD1309 supports a hardware vertical scrolling feature, which can shift the entire display content up or down by a specified number of rows. The scrolling can be set to continuous or single-step mode, and the scroll speed is controlled by the frame frequency. The scrolling feature is implemented in hardware, so it does not require CPU intervention once the parameters are set. The driver chip also supports a partial display mode, where only a portion of the RAM is refreshed, reducing power consumption. In partial mode, the driver only scans the rows within the specified window, and the other rows are left in a high-impedance state. This is useful for applications where only a small area of the display changes, such as a clock or a status bar. The partial display mode can reduce power consumption by up to 50% compared to full-screen refresh. The SSD1309 has a built-in temperature sensor, but it is not intended for accurate temperature measurement. The sensor output is used internally for automatic contrast compensation, which adjusts the display brightness based on the temperature. The compensation curve is linear, with a typical slope of -0.5% per degree Celsius. This means the display will appear slightly dimmer at higher temperatures and slightly brighter at lower temperatures. The temperature sensor can be read via the I2C or SPI interface, but the accuracy is only ±5°C, so it is not suitable for precise temperature monitoring. The driver chip also includes a power-on reset (POR) circuit, which ensures that the internal registers are initialized to a known state when power is applied. The POR threshold is typically 1.65V, so the chip will reset if the VCC drops below this level. The reset pulse width is 3 microseconds, after which the chip is ready to accept commands. The SSD1309 is fabricated using a 0.18 µm CMOS process, which gives it a low leakage current and high noise immunity. The chip is available in a 48-pin QFP package or a bare die for COG assembly. The QFP package is 7mm x 7mm with a 0.5mm pitch, while the COG die is about 5mm x 3mm. The COG version is more common in 2.42-inch modules because it allows for a smaller PCB and a thinner module. The driver chip has a maximum clock frequency of 10 MHz for SPI, but the actual speed is limited by the PCB layout and the microcontroller's output drive strength. At 10 MHz, the data transfer rate is 10 Mbps, which is sufficient for updating the entire 128x64 display in about 8.2 ms (1024 bytes at 10 Mbps). The I2C interface is slower, with a maximum clock frequency of 400 kHz, which results in a transfer time of about 20 ms for a full screen update. The SSD1309 supports both 3-wire and 4-wire SPI modes. In 3-wire mode, the DC signal is combined with the data byte as a 9-bit word, where the first bit indicates command or data. This reduces the number of pins but requires a different protocol. In 4-wire mode, the DC pin is separate, which simplifies the software interface. The driver chip also supports a 6800 and 8080 parallel interface, which uses 8 data lines and control signals. The parallel interface is faster than SPI, but it requires more pins and is rarely used in modern designs due to the popularity of SPI. The SSD1309 is compatible with a wide range of microcontrollers, including Arduino, ESP32, STM32, Raspberry Pi, and PIC. The initialization code is well-documented, and many libraries are available, such as the Adafruit SSD1306 library, which also supports the SSD1309 with minor modifications. The key difference between the SSD1306 and SSD1309 is the charge pump voltage range and the segment driver capability. The SSD1306 can only drive up to 128 segments, while the SSD1309 can drive up to 132 segments. The extra segments are used for the SH1106 compatibility mode, where the RAM is 132x64. The SSD1309 also has a wider charge pump voltage range, which allows it to drive larger OLED panels with higher capacitance. The 2.42-inch 128x64 OLED module typically has a pixel pitch of 0.41 mm, which gives a pixel density of about 62 PPI (pixels per inch). The active area is 53.2 mm wide and 26.3 mm tall, with a module outline of about 60 mm by 33 mm, including the PCB and the connector. The module thickness is about 1.5 mm, excluding the connector. The connector is typically a 2.54 mm pitch pin header or a 1.0 mm pitch FPC connector. The power consumption of the module depends on the number of lit pixels and the contrast setting. At full brightness (all pixels white), the module draws about 20 mA from a 3.3V supply, which is 66 mW. At 50% pixel density, the current is about 12 mA, and at 10% pixel density, it is about 6 mA. The standby current is less than 1 µA when the display is in sleep mode. The OLED panel has a lifetime of 50,000 hours to half-brightness, which is about 5.7 years of continuous operation. The lifetime is affected by the operating temperature, the contrast setting, and the pixel usage pattern. The blue subpixels in a white OLED have a shorter lifetime than the yellow subpixels, so the color balance may shift over time. The driver chip also includes a display off command, which turns off the charge pump and the oscillator, reducing the current to less than 1 µA. The display off command is useful for power-saving in battery-powered applications. The SSD1309 supports a hardware reset pin, which is active low. The reset pulse must be at least 3 microseconds wide to ensure a proper reset. After reset, the display is in sleep mode, and the charge pump is disabled. The initialization sequence must be executed before the display can be used. The typical initialization sequence for the SSD1309 is as follows: set the multiplex ratio to 64 (0x3F), set the display offset to 0 (0x40), set the display start line to 0 (0x40), set the segment remap to column 127 (0xA1), set the COM scan direction to remapped mode (0xC8), set the COM pins hardware configuration to alternative pin configuration (0xDA, 0x12), set the contrast to 0x7F (0x81, 0x7F), disable the entire display on (0xA4), set the normal display mode (0xA6), set the charge pump to enable (0x8D, 0x14), set the display clock divide ratio to 0x80 (0xD5, 0x80), set the pre-charge period to 0x22 (0xD9, 0x22), set the VCOMH deselect level to 0x20 (0xDB, 0x20), set the memory addressing mode to horizontal mode (0x20, 0x00), clear the display RAM (write zeros to all pages), and then set the display on (0xAF). The SH1106 initialization sequence is different, with a different multiplex ratio and a different segment remap. The SH1106 also requires a different charge pump setting and a different VCOMH level. If you accidentally use the SSD1309 initialization sequence on an SH1106, the display may not work correctly, or it may show garbled content. The 2.42-inch 128x64 OLED module is available in several color options, including yellow-blue (yellow on top, blue on bottom), white, and blue. The yellow-blue version is the most common, with the top 16 rows in yellow and the bottom 48 rows in blue. The yellow and blue pixels are made from different organic materials, so they have different lifetimes and different drive voltages. The yellow pixels typically have a higher efficiency and a longer lifetime than the blue pixels. The white version uses a white emitter with a color
Edition No. 312
What is the driver chip for a 2.42 inch 128x64 OLED?
The Insider Briefing · Free to your inbox