1.12" Mono OLED (128x128, white/black) Breakout – SPI

by Pimoroni

A crisp, bright 1.12" OLED that's ideal for adding a small display to your project. This 128x128 pixel, monochrome white/black display is ideal for graphing, readouts, and displaying basic icons. Now available in SPI or I2C flavours!

Our 1.12" OLED breakout is now available in SPI or I2C versions. If you have SPI available on your microcontroller, we'd recommend the SPI version, as you can drive it much, much faster, for buttery-smooth animations.

OLEDs have the advantage of being extremely bright and readable, with great contrast. Because this one is small, it's great for fitting into projects where space is at a premium, and it's Raspberry Pi and Arduino-compatible!

On the I2C version, we've included a trace that can be cut to change the I2C address from 0x3C to 0x3D, if you want to use two I2C OLEDs at once!

It's also compatible with our fancy Breakout Garden, where using breakouts is as easy just popping it into one of the slots and starting to grow your project, create, and code.

Features

  • 1.12" white/black OLED display (128x128 pixels)
  • Uses the SH1107 driver chip
  • 20x20mm active area
  • SPI or I2C (address 0x3C/0x3D (cut trace)) interface
  • 3.3V or 5V compatible
  • Reverse polarity protection
  • Compatible with all models of Raspberry Pi, and Arduino
  • Python library

Kit includes

  • 1.12" OLED display breakout
  • 1x5 (I2C) or 1x7 (SPI) male header
  • 1x5 female right-angle header (only included with I2C version)

With the I2C version, you can solder on the piece of right-angle female header and pop it straight onto the bottom left 5 pins on your Raspberry Pi's GPIO header (pins 1, 3, 5, 7, 9).

With the SPI version, pop it into either one of the SPI sockets on Breakout Garden, or connect it with wires to the following pins on your Pi (note that it's BCM pin numbering):

  • 3-5V to any 5V or 3V pin
  • CS to BCM 7
  • SCK to BCM 11
  • MOSI to BCM 10
  • DC to BCM 9
  • GND to any ground pin

Software

We recommend the Luma Python library for driving this OLED display. You can find full documentation for the Luma library here.

To get up and running you should:

  • Install the latest library directly from GitHub: sudo pip3 install git+git://github.com/rm-hull/luma.oled.git#egg=luma.oled
  • Grab the examples repository: sudo git clone https://github.com/rm-hull/luma.examples
  • With the SPI version, you can run an example like so: python3 bounce.py --display sh1106 --height 128 --rotate 2 --interface spi --gpio-data-command 9 (add --spi-device 0 for the back slot, or --spi-device 1 for the front slot)
  • With the I2C version, you can run an example like so: python3 maze.py --display sh1106 --height 128 --rotate 2 --interface i2c

Notes

Dimensions: 28x42x5.5mm.