Introduction
luma.oled provides a Python3 interface to OLED matrix displays with the SSD1305, SSD1306, SSD1309, SSD1315, SSD1316, SSD1322, SSD1325, SSD1327, SSD1331, SSD1351, SSD1362, SH1106, SH1107, CH1115 or WS0010 controllers to connect with Raspberry Pi and other Linux-based single-board computers (SBC). It provides a Pillow-compatible drawing canvas, and other functionality to support:
scrolling/panning capability,
terminal-style printing,
state management,
color/greyscale (where supported),
dithering to monochrome
The SSD1306 display pictured below is 128 x 64 pixels, and the board is tiny, and will fit neatly inside the RPi case.
See also
Further technical information for the specific implemented devices can be found in the following datasheets:
SSD1305SSD1306SSD1309SSD1315SSD1316SSD1322SSD1325SSD1327SSD1331SSD1351SSD1362SH1106WS0010WEH001602
Benchmarks for tested devices can be found in the wiki.
Examples and Emulators
As well as display drivers for various physical OLED devices there are emulators that run in real-time (with pygame) and others that can take screenshots, or assemble animated GIFs, as per the examples below (source code for these is available in the luma.examples git repository: