Solder Header


Before you start wiring, a strip of header must be soldered onto the OLED. It is not possible to "press-fit" the header, it must be attached!
Start by placing an 8-pin piece of header with the long ends down into a breadboard for stability
Place the OLED on top so all the short ends of the header stick thru the header pads
Finish by soldering each of the 8 pins to the 8 pads!

I2C or SPI


The nice thing about the 128x64 OLEDs is that they can be used with I2C (+ an optional reset line) or SPI. SPI is generally faster than I2C but uses more pins. It's also easier for some microcontrollers to use SPI. Anyways, you can use either one with this display

Using with I2C

The display can be used with any I2C microcontroller. Because the I2C interface is for 'writing' to the display only, you'll still have to buffer the entire 512 byte frame in the microcontroller RAM - you can't read data from the OLED (even though I2C is a bidirectional protocol).

If you have the older non-STEMMA version of the OLED, you'll need to solder the two jumpers on the back of the OLED. Both must be soldered 'closed' for I2C to work!

For the new STEMMA-capable version, the J1 and J2 jumpers are closed so that the display is by default in I2C mode!

There's a typo on the board, to put it into SPI, open the two jumpers (as they're closed by default)

Converting From I2C to SPI Mode

The original version of this display was SPI by default, and you could convert to I2C with some light soldering. Many folks using these displays did not know how to solder, didn't own an iron or were not comfortable with soldering, so we converted the board to STEMMA QT 'plug and play' I2C so no soldering is required to use in I2C mode.

To convert it back to SPI is very easy, and requires a thin screwdriver or other sharp-tipped item be careful not to cut towards you as always so you do not accidentally cut yourself!

Wiring It Up!

For the STEMMA QT version of this board, you do not need to connect RST - this revision added auto-reset circuitry so the RESET pin is not required.

Finally, connect the pins to your Arduino

  • GND goes to ground (black wire on STEMMA QT version)
  • Vin goes to 5V (red wire on STEMMA QT version)
  • Data to I2C SDA (on the Uno, this is A4 on the Mega it is 20 and on the Leonardo digital 2) (blue wire on STEMMA QT version)
  • Clk to I2C SCL (on the Uno, this is A5 on the Mega it is 21 and on the Leonardo digital 3) (yellow wire on STEMMA QT version)
  • RST to digital 4 (you can change this pin in the code, later) (Not necessary on 0.96" STEMMA QT version)

This matches the example code we have written. Once you get this working, you can try a different Reset pin (you can't change the SDA and SCL pins).

Finally you can run the File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_i2c example

Using with SPI

The breakouts are ready for SPI by default, but if you used them for I2C at some point, you'll need to remove the solder jumpers. Use wick or a solder sucker to make sure both are clear!

If you have the older non-STEMMA version of the OLED, the breakouts are ready for SPI by default.

If you used them for I2C at some point, you'll need to remove the solder jumpers. Use wick or a solder sucker to make sure both are clear!

If you have the newer STEMMA QT version cut the two jumpers instead!

Finally, connect the pins to your Arduino -
  • GND goes to ground
  • Vin goes to 5V
  • DATA to digital 9
  • CLK to digital 10
  • D/C to digital 11
  • RST to digital 13
  • CS to digital 12

(Note: If using the display with other SPI devices, D/C, CLK and DAT may be shared, but CS must be unique for each device.)

This matches the example code we have written. Once you get this working, you can try another set of pins.

Finally you can run the File→Sketchbook→Libraries→Adafruit_SSD1306→SSD1306_128x64_spi example

This guide was first published on Jul 29, 2012. It was last updated on Jul 29, 2012.

This page (Wiring 128x64 OLEDs) was last updated on Dec 02, 2020.