Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/rm-hull/luma.oled/llms.txt

Use this file to discover all available pages before exploring further.

Luma OLED is a Python 3 library that gives you full control of OLED matrix displays connected to a Raspberry Pi or other Linux-based single-board computers. It handles the low-level initialization sequences, memory addressing, and display refresh logic for each supported chipset, so you can focus on drawing content rather than managing hardware registers.

Supported controllers

Luma OLED provides device drivers for the following controllers:
  • SSD1305, SSD1306, SSD1309, SSD1315, SSD1316
  • SSD1322, SSD1325, SSD1327, SSD1331, SSD1351, SSD1362
  • SH1106, SH1107
  • WS0010, CH1115
A community-maintained list of tested devices and benchmarks is available in the luma.oled wiki.

Key features

Multiple interfaces

Communicate with your display over I2C, SPI, PCF8574-based parallel, or 6800-style bitbang parallel.

Pillow-compatible canvas

Draw text, shapes, and images using the familiar Pillow (PIL) ImageDraw API — no new drawing primitives to learn.

Color and greyscale

Supports monochrome (1-bit), 4-bit greyscale (SSD1322, SSD1325, SSD1362), and full 16-bit RGB color (SSD1331, SSD1351).

Scrolling and state

Built-in scrolling and panning, terminal-style printing, and state management for dynamic display content.

Dithering

Convert color or greyscale artwork to monochrome using dithering — useful when targeting 1-bit displays.

Orientation control

Rotate the display 0°, 90°, 180°, or 270° in software without any hardware changes.

The luma ecosystem

Luma OLED is one library in a broader ecosystem that shares a common API and luma.core foundation:
LibraryDescription
luma.coreShared base classes, rendering canvas, and interface abstractions
luma.oledOLED display drivers (this library)
luma.lcdLCD display drivers (PCD8544, ST7735, ILI9341, and more)
luma.led_matrixLED matrix drivers (MAX7219, WS2812, APA102)
luma.emulatorSoftware emulators for testing without physical hardware
Because all luma libraries share the same canvas API from luma.core, code you write for an OLED display will work with minimal changes on LCD or LED matrix displays.

Next steps

  • Install luma.oled — set up your Python environment and install the library
  • Quickstart — connect a display and draw your first image in minutes
  • Hardware setup — wire up your display over I2C, SPI, or parallel

Build docs developers (and LLMs) love