OLED display to Raspberry Pi

Today I played with an OLED Display. I bought it from Amazon for $14 which is 0.96 Inch I2C and SPI Serial 128 x 64. It needs only 4 wires to connect to Raspberry Pi. This display is a monochrome (blue) – hence the price.

 i2cdetect -y 1

Showed the display detected on the I2C bus

Couple of lines of code from GitHUB – show IP address and the time. Graphics also can be drawn – lines, circles, rectangles, ellipses etc. even displaying .png files.


#!/usr/bin/env python
# !!! Needs psutil (+ dependencies) installing:
# $ sudo apt-get install python-dev
# $ sudo pip install psutil
import os
import sys
if os.name != 'posix':
sys.exit('platform not supported')
import psutil

from datetime import datetime
from oled.device import ssd1306, sh1106
from oled.render import canvas
from PIL import ImageDraw, ImageFont

f = os.popen('/sbin/ifconfig wlan0 | grep "inet\ addr" | cut -d: -f2 | cut -d" " -f1')
from time import gmtime,localtime, strftime
t = strftime("%Y-%m-%d %H:%M:%S", localtime())
def stats(oled):
font = ImageFont.load_default()
font3 = ImageFont.truetype('/root/oled/fonts/C&C Red Alert [INET].ttf', 18)
font4 = ImageFont.truetype('/root/oled/fonts/C&C Red Alert [INET].ttf', 22)
with canvas(oled) as draw:
draw.text((0, 26), your_ip, font=font4, fill=255)
draw.text((0, 48), t, font=font3, fill=255)

def main():
oled = ssd1306(port=1, address=0x3C)

if __name__ == "__main__":


Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>