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.

The parallel bus interface (6800-style) uses more GPIO pins than I2C or SPI, but parallel-bus displays are often less expensive. Unlike SPI, reading from the display is not supported by the bitbang_6800 class, so the R/W line must be tied to ground to keep the display permanently in write mode. You can choose any available GPIO pins for the data and control lines, giving you flexibility in your wiring layout.
The Raspberry Pi uses 3.3V logic on its GPIO pins. Many parallel-bus displays are designed for 5V logic. If your display outputs 5V on a signal line connected to a Raspberry Pi GPIO pin, you risk permanently damaging your Pi. Check your display’s datasheet before wiring.

Pin connections

The following wiring example is for the Winstar WEH001602A. GPIO pin assignments are flexible — the values below match the code example at the bottom of this page.
Device PinNameRemarksRPi PinRPi Function
1GNDGroundP01-6GND
2VDD+5.0V PowerP01-25V Power
3NCNot Connected
4RSRegister SelectP01-26GPIO 7
5R/WRead/WriteP01-14GND
6EEnableP01-24GPIO 8
7D0Not Connected
8D1Not Connected
9D2Not Connected
10D3Not Connected
11D4Databus line 4P01-22GPIO 25
12D5Databus line 5P01-18GPIO 24
13D6Databus line 6P01-16GPIO 23
14D7Databus line 7P01-13GPIO 27
15NCNot Connected
16NCNot Connected

4 vs 8 data lines

You can wire your display using either 4 or 8 data lines. Using 8 data lines (D0–D7) provides a faster interface but increases wiring complexity. Most implementations use 4 data lines (D4–D7), which gives acceptable performance and is the default setting for the bitbang_6800 class.
The R/W pin must be connected to ground. The bitbang_6800 class does not support reading from the display, so this pin must always be held low (write mode).

Initialize the interface in Python

Pass the GPIO pin numbers for the RS (register select) and E (enable) lines, along with a list of the four data pins in order D4–D7:
from luma.core.interface.parallel import bitbang_6800

serial = bitbang_6800(RS=7, E=8, PINS=[25, 24, 23, 27])

Build docs developers (and LLMs) love