Grove - OLED Display 1.12"

enter image description here

Our new 1.12” OLED displays are perfect when you need a small display with 16 grayscale. The visible portion of the OLED measures 1.12” diagonal and contains 96x96(version 1.0) | 128x128(version 2.0) grayscale pixels. Because the display uses OLEDs, there is no backlight, and the contrast is very high.

This OLED uses the SSD1327(V1.0) or SH1107G(V2.1) driver chip, which manages the display. You can talk to the driver chip using 4-wire I2C (clock, data, power, and GND pins).

  • Communicate Mode: I2C
  • Grayscale Display: 16 Gray shades.
  • Supports both Normal and Inverse Color Display.
  • Supports Continuous Horizontal Scrolling.
  • Grove compatible Interface


Product Version Changes Released Date
Grove - OLED Display 1.12" V1.0 Initial Mar 2012
Grove - OLED Display 1.12" V2.1 Change the driver IC from SSD1327 to SH1107G, upgrade the grayscale pixels from 96X96 to 128X128 Nov 2015


Item Value
Operating Voltage 3.⅗ V
Dot Matrix 96x96
Display Color 16 Grayscale
OLED Display LY120-96096
Driver Chip SSD1327Z
Dot Size 0.15(W)mm x 0.15(H)mm
Dot Pitch 0.75(W)mm x 0.175(H)mm
Operating Temperature -40~70 oC


More details about Grove modules please refer to Grove System

Platforms Supported

Arduino Raspberry Pi BeagleBone Wio LinkIt ONE


The platforms mentioned above as supported is/are an indication of the module's software or theoritical compatibility. We only provide software library or code examples for Arduino platform in most cases. It is not possible to provide software library / demo code for all possible MCU platforms. Hence, users have to write their own software library.

Getting Started


This chapter is based on Win10 and Arduino IDE 1.6.9


Here we will show you how this Grove - OLED Display works via a simple demo. First of all, you need to prepare the below stuffs:

Seeeduino V4 Grove - OLED Display 1.12`` Base Shield
enter image description here enter image description here enter image description here
Get ONE Now Get ONE Now Get ONE Now

This is an easy-to-use module, what you need to do is connect the module to I2C port of a Base Shield. There're 4 pins, defined as below.

pin Function Note Cable color
pin1 SCL I2C Clock YELLOW
pin2 SDA I2C Data WHITE
pin3 VCC Power, 5V/3.3V RED
pin4 GND Ground BLACK

Grove - OLED Display 1.12`` is an I2C module, we connect it to I2C port at this demo.

enter image description here


  • Please follow how to install an arduino library procedures to install library.
  • We provide an Arduino Library for this Grove - OLED Display 1.12inch, click on the below button to download it. enter image description here

  • Unzip the file and put to libraries folder of your Arduino IDE. There're many examples in this library, which is consist of

    1. OLED_Bitmap_Inverse_Display
    2. OLED_Draw_Bitmap
    3. OLED_Hello_World
    4. OLED_Inverse_Display
    5. OLED_PrintNumbers
    6. OLED_Scroll_Left
    7. OLED_Scroll_Right
    8. OLED_Z_Display_Driver_Test_Suite


Please change the parameter of the SeeedGrayOled.init() base on different version. For V1.0, please config as SeeedGrayOled.init(SSD1327). For V2.1, please config as SeeedGrayOled.init(SH1107G).

  • Now let's try upload OLED_Hello_World to Seeeduino V4. Open your Arduino IDE, click on File > Example > OLED_Display_96x96-master > OLED_Hello_World

enter image description here

  • When the code is open, select the right board and right COM Port, then click on Upload button which will take few seconds. enter image description here

  • If the code is uploaded correctly, you will see the hello world on the OLELD. enter image description here

  • Then please try the other examples to see what will happen.

APIs of the library

Seeed Gray OLED library provides complete software interfaces to exercise the capabilities of SSD1327Z driver with a 96x96 gray OLED. Almost all useful features are implemented and all functions are in public scope. This makes Seeed Gray OLED Library extensible. Seeed Gray OLED library uses Arduino Wire library. Hence initialize wire library before initializing Seeed OLED library.


Initializes the Seeed OLED frame and sets the display to Normal mode.


SeeedGrayOled.init();  //initialze SEEED Gray OLED display


Clears the whole screen. Should be used before starting a fresh start or after scroll deactivation. This function also sets the cursor to top left corner.


SeeedGrayOled.clearDisplay();  //clear the screen and set start position to top left corner


Configures the display to normal mode(non-inverse) mode.


SeeedGrayOled.setNormalDisplay();//Set display to normal mode (i.e non-inverse mode)

setContrastLevel(unsigned char ContrastLevel)

Set the contrast ratio of OLED display. ContrastLevel can be any number from 0 - 255. Example:

SeeedGrayOled.setContrastLevel(127); //Set display contrast ratio to half level( i.e 256/2 1 ).


Configures the display to inverse mode. Example:

SeeedGrayOled.setInverseDisplay();      //Set display to inverse mode


Configures the display to horizontal addressing mode. Example:

SeeedGrayOled.setHorizontalMode();      //Set addressing mode to Horizontal Mode


Configures the display to vertical addressing mode. Texts are drawn in vertical mode. Please set the display to vertical mode before printing text. Example:

SeeedGrayOled.setVerticalMode();      //Set addressing mode to Vertical Mode


Set the text's position (cursor) to Xth Text Row, Yth Text Column.96x96 OLED is divided into 12 rows and 12 Columns of text. This row and column should not be confused with OLED Row and Column.

  • X can be any number from 0 - 11.
  • Y can be any number from 0 - 11.


SeeedGrayOled.setTextXY(0,0);  //Set the cursor to 0th Text Row, 0th Text Column

putChar(unsigned char c)

Print a character to OLED display starting from current address-pointer set by setTextXY(X,Y). This function is internally used by putString().


SeeedGrayOled.putChar('S'); //Print the character S

putString(cont char *string)

Print string to OLED display starting from current address-pointer set by setTextXY(X,Y) Example:

SeeedGrayOled.putString("Hello World!"); //Print the String

putNumber(long n)

Print numbers to OLED display starting from current address-pointer set by setTextXY(X,Y). Number can be any char,int or long datatype. It also takes care of -ve sign.


SeeedGrayOled.putNumber(-56123); //Print number -56123

drawBitmap(unsigned char *bitmaparray, int bytes)

Display a binary bitmap on the OLED matrix. The data is provided through a pointer to uni-dimensional array holding bitmap. The bitmap data is available in continuous rows of columns as like Horizontal Addressing mode. bytes is size of bitmap in bytes.


SeeedGrayOled.drawBitmap(SeeedLogo,96*96/8);   //  Draw binary Bitmap (96 pixels *96 pixels  / 8) bytes


Set the properties of horizontal scroll.

  • Direction can be any of Scroll_Left and Scroll_Right.
  • startRow can be 0 - 127
  • endRow can be 0 - 127. It should be greater than startRow
  • startColumn can be 0 - 63
  • endColumn can be 0 - 63. It should be greater than startRow
  • scrollSpeed can be any of defines:Scroll_2Frames, Scroll_3Frames, Scroll_4Frames, Scroll_5Frames, Scroll_25Frames,Scroll_64Frames, Scroll_128Frames,Scroll_256Frames.


SeeedGrayOled.setHorizontalScrollProperties(Scroll_Left,72,95,0,47,Scroll_5Frames);  //Set the properties of Horizontal Scroll


Enable scrolling. This should be used only after setting horizontal scroll properties. Example:

SeeedGrayOled.activateScroll();   //Enable scrolling.


Disable scrolling. This should be used after activateScroll(); Example:

SeeedGrayOled.activateScroll();   //Disable scrolling.



Smart Crops: Implementing IoT in Conventional Agriculture! Our mission with nature is to preserve it, designing and implementing technologies and monitoring methods with the help of IoT via Helium.

Automated Plant Watering System A device that waters plants and monitors temprature using an ESP8266 and Android app.

Flying BeagleBone Green BBBmini is a state of the art Linux autopilot / flightcontroller Cape for the BeagleBone. It can be used for Copter, Planes or Rovers.

Tech Support

Please submit any technical issue into our forum.