How to use Arduino OLED I2C Display with SSD1306

The SSD1306 is a popular option when it comes to picking a OLED 128×64 I2C display to use alongside an Arduino. However, there are other options in the OLED family as well. Hence, in today’s post, we’ll be introducing the available display options at Seeed, and providing a simple tutorial on how you could get started with using an OLED I2C Display Module!

Lets first get started with a quick introduction to the SSD1306!

Introduction to SSD1306 OLED Display Chip

SSD1306 Features

The SSD1306 is a 128×64 dot single chip driver with controller that’s used for graphic display systems. It’s commonly integrated into OLED display modules like the one seen above for Arduino, Raspberry Pi, or other microontroller usages.

With its embedded colour contrast and birghtness control, alongside display RAM, oscillator, it’s a chip that not only consumes minimal power but requires not many external components for functionality!

Other features include:

  • Internal charge pump regulator
  • RAM write synchronization signal
  • Programmable frame rate with multiplexing ratio
  • On-chip oscillator
  • Wide operating temperature of -40ºC to 85ºC

Do note that features and specifications differ based on the display modules integrated upon.

Interested to find out more about this chip? For more information, you can check out the SSD1306 datasheet and its relevant libraries!

Alternative OLED Display Modules at Seeed

Here at Seeed, we only carry a SSD1306 OLED Display Module for the Raspberry Pi, where you can easily pair it through the GPIO pins. However, if you’re looking for an OLED Display for your Arduino projects, we carry other similar options that are worth checking out!

128×64 I2C 0.96″ OLED Display Module

If you’re looking for the closest alternative to the SSD1306, here we have the Grove – OLED Display 0.96″ that uses the SSD1308 chip. Apart from the difference being the SSD1306 having an onboard charge-pump, both chips are vastly similar.

If you’re wondering what this OLED display module has to offer, here are it’s features:

  • Grove Compatible; Plug and Play with Arduino for pairing, no jumper wires or breadboard required
  • Small form factor
  • I2C Interface
  • Low power consumption with high brightness and contrast ratio

Note: You can still pair this OLED display with the SSD1306 sample Arduino code but it may only work intermittently. As such, we’ve provided our very own tutorial shown later!

128×128 1.12″ I2C OLED Display Module

If you need something small with a higher resolution OLED display due to higher pixel speed, the above Grove – OLED Display 1.12″ V2 is the one for you!

Based on the SH1107G driver chip, it is similar to SSD1306 in the way where there’s no backlight usage, with the contrast kept at a high level.

Here are the features of this OLED display module:

  • The visible portion of the OLED measures 1.12” diagonal and contains 96×96(version 1.0) | 128×128(version 2.0) grayscale pixel
  • Grove compatible; Plug and Play with Arduino for pairing, no jumper wires or breadboard required
  • Max I2C bus speed increased ti 200KHz (V2), with this 128×128 display now having an 8 times higher pixel speed, making it a super fast high-resolution display compared to the older one

Interested to find out more? You can check out its product page here!

OLED I2C Display Tutorial with Arduino

We’ve provided our OLED I2C Display modules for your selection but wonder how you can use them with Arduino? Here’s a simple tutorial to help you easily get started. We’ll be using the Grove – OLED Display O.96″ today!

Note: The Grove – OLED Display 0.96″ is supported on other microcontroller platforms like the Raspberry Pi, Beaglebone, Wio, and LinkIt ONE as well. If you’re looking for such tutorials, do refer to our Wiki page here!

Here’s what you need:

  • Seeeduino is Seeed’s very own Arduino board, built with relative benefits over the original
    • If you do not wish to purchase a Seeeduino, this tutorial is still applicable for the following Arduino boards: Arduino UNO, Arduino Mega, Arduino Leonardo, Arduino 101, Arduino Due

Hardware Assembly:

  • Step 1: Plug the Grove OLED Display 0.96″ into the I2C port on the Grove Base Shield
  • Step 2: Plug Grove-Base Shield into Seeeduino
  • Step 3: Connect Seeeduino to PC via a USB cable

It should look something like this after completing the above steps:

Software configurations with Arduino Code and Library

  • Step 1: Download the Seeed OLED Display 0.96″ library from Github
  • Step 2: Install library for Arduino
    • If you’re unsure on how to install library, do refer to our guide here
  • Step 3: Copy the code into Arduino IDE and upload. If you’re unsure on how to upload the code, do check our guide here
#include <Wire.h>
#include <SeeedOLED.h>

void setup()
  SeeedOled.init();  //initialze SEEED OLED display

  SeeedOled.clearDisplay();          //clear the screen and set start position to top left corner
  SeeedOled.setNormalDisplay();      //Set display to normal mode (i.e non-inverse mode)
  SeeedOled.setPageMode();           //Set addressing mode to Page Mode
  SeeedOled.setTextXY(0, 0);         //Set the cursor to Xth Page, Yth Column
  SeeedOled.putString("Hello World!"); //Print the String

void loop()


The tutorial is complete. You can now see “Hello World” on the screen!


That’s all for today’s guide on SSD1306, alongside other OLED Displays and how you can use it with Arduino. I hope with this, you get a basic understanding of how you can get started with using OLED I2C Displays for your next Arduino project!

If you’re looking for modules that provide easy Arduino interfacing, do consider our recommendations! 

Please follow and like us:

Leave a Reply

Your email address will not be published. Required fields are marked *

Wordpress Social Share Plugin powered by Ultimatelysocial