Introduction
luma.lcd provides a Python3 interface to small LCD displays connected to 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
Supported Devices
The library currently supports devices using the HD44780, PCD8544, ST7735, HT1621, and UC1701X controllers.
HD44780
The HD44780 (and similar) devices are some of the most popular small LCD displays available for SBCs. These are character-based displays but the luma.lcd driver supports a limited ability to display graphical content on them. See the HD44780 documentation for details.

PCD85744
The PCD8544 display pictured below was used originally as the display for Nokia 5110 mobile phones, supporting a resolution of 84 x 48 monochrome pixels and a switchable backlight:

They are now commonly recycled, and sold on ebay with a breakout board and SPI interface.
ST7735
The ST7735 display supports a resoltion of 160 x 128 RGB pixels (18-bit / 262K colors) with a switchable backlight:

HT1621
The HT1621 display (as purchased) supports six 7-segment characters with a switchable backlight:

UC1701X
The UC1701X display supports a resolution of 128 x 64 monochrome pixels with a switchable backlight:

ST7567
The ST7567 display supports a resolution of 128 x 64 monochrome pixels:

Examples and Emulators
As well as display drivers for the physical device, 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 examples repository.


