luma.lcd 2.13.0
A library to drive PCD8544, HD44780, HT1621, ST7735, ST7789, ST7567, UC1701X and ILI9341-based LCD displays
License: MIT
Requires Python: <4,>=3.9
Keywords: raspberry pi, rpi, lcd, display, screen, rgb, monochrome, greyscale, color, nokia 5110, pcd8544, st7735, st7789, uc1701x, ht1621, ili9341, hd44780, spi, i2c, parallel, bitbang6800, pcf8574

`luma.core <https://github.com/rm-hull/luma.core>`__ **|**
`luma.docs <https://github.com/rm-hull/luma.docs>`__ **|**
`luma.emulator <https://github.com/rm-hull/luma.emulator>`__ **|**
`luma.examples <https://github.com/rm-hull/luma.examples>`__ **|**
luma.lcd **|**
`luma.led_matrix <https://github.com/rm-hull/luma.led_matrix>`__ **|**
`luma.oled <https://github.com/rm-hull/luma.oled>`__

luma.lcd
========
**HD44780, PCD8544, ST7735, ST7789, ST7567, HT1621, UC1701X, ILI9341, ILI9486, ILI9488 Display Drivers**

.. image:: https://github.com/rm-hull/luma.lcd/workflows/luma.lcd/badge.svg?branch=master
   :target: https://github.com/rm-hull/luma.lcd/actions?workflow=luma.lcd

.. image:: https://coveralls.io/repos/github/rm-hull/luma.lcd/badge.svg?branch=master
   :target: https://coveralls.io/github/rm-hull/luma.lcd?branch=master

.. image:: https://readthedocs.org/projects/luma-lcd/badge/?version=latest
   :target: http://luma-lcd.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

.. image:: https://img.shields.io/pypi/pyversions/luma.lcd.svg
   :target: https://pypi.python.org/pypi/luma.lcd

.. image:: https://img.shields.io/pypi/v/luma.lcd.svg
   :target: https://pypi.python.org/pypi/luma.lcd

.. image:: https://img.shields.io/pypi/dm/luma.lcd
   :target: https://pypi.python.org/project/luma.lcd

luma.lcd provides a Python 3 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

It currently supports devices using the HD44780, PCD8544, ST7735, ST7567, ST7789, ILI9341,
ILI9486, ILI9488 and UC1701X controllers.

All modules can be picked up on ebay with a breakout board for a few pounds.

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/hd44780_20x4.jpg

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/pcd8544.png

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/st7735.jpg

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/ht1621.jpg

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/uc1701x.png

.. image:: https://raw.github.com/rm-hull/luma.lcd/master/doc/images/ili9341.jpg

Documentation
-------------
Full documentation with installation instructions and examples can be found on
https://luma-lcd.readthedocs.io.

Upgrade
-------
Version 2.0.0 was released on 2 June 2019: this came with the removal of the
``luma.lcd.aux.backlight`` class. The equivalent functionality has now
been subsumed into the device classes that have a backlight capability.

License
-------
The MIT License (MIT)

Copyright (c) 2013-2026 Richard Hull & Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Contributing
------------

Pull requests (code changes / documentation / typos / feature requests / setup)
are gladly accepted. If you are intending to introduce some large-scale
changes, please get in touch first to make sure we're on the same page: try to
include a docstring for any new method or class, and keep method bodies small,
readable and PEP8-compliant. Add tests and strive to keep the code coverage
levels high.

GitHub
^^^^^^
The source code is available to clone at: https://github.com/rm-hull/luma.lcd.git

Contributors
^^^^^^^^^^^^
* Thijs Triemstra (@thijstriemstra)
* Dougie Lawson (@dougielawson)
* WsMithril (@WsMithril)
* Peter Martin (@pe7er)
* Saumyakanta Sahoo (@somu1795)
* Philip Howard (@Gadgetoid)
* Ricardo Amendoeira (@ric2b)
* Kevin Stone (@kevinastone)
* Dhrone (@dhrone)
* Matthew Lovell (@mattblovell)
* Maciej Sokolowski (@matemaciek)
* Frederic Meeuwissen (@Frederic98)
* Ed Wightman (@wightmanjr)
* @CutterXYZ
* @Kyuchumimo
* Joseph Hobbs (@JosephHobbs)

ChangeLog
---------

+------------+---------------------------------------------------------------------+------------+
| Version    | Description                                                         | Date       |
+============+=====================================================================+============+
| **2.13.0** | * Drop support for Python 3.8                                       | 2026/02/01 |
|            | * Fixed custom chars unnecessarily being cleaned up for HD44780     |            |
|            | * Added 24 big digits fonts for HD44780                             |            |
+------------+---------------------------------------------------------------------+------------+
| **2.12.0** | * Drop support for Python 3.7                                       | 2025/12/16 |
|            | * Added param to control ili9486 display inversion                  |            |
|            | * Active_low default parameter should be False, since usually the   |            |
|            |   backlight (BL/LED) pin is a VCC pin to power an LED (active high) |            |
|            | * Added support for AiP31068 and PCA9633.                           |            |
+------------+---------------------------------------------------------------------+------------+
| **2.11.0** | * Add ILI9488 Colour LCD display driver                             | 2023/07/02 |
+------------+---------------------------------------------------------------------+------------+
| **2.10.0** | * Drop support for Python 3.6                                       | 2022/10/19 |
|            | * Add width and height parameters to ST7789 device                  |            |
|            | * Fix timing issue in ili9341                                       |            |
+------------+---------------------------------------------------------------------+------------+
| **2.9.0**  | * Add ST7789 Colour LCD display driver                              | 2021/03/14 |
+------------+---------------------------------------------------------------------+------------+
| **2.8.0**  | * Add ILI9486 Colour LCD display driver                             | 2020/12/14 |
+------------+---------------------------------------------------------------------+------------+
| **2.7.1**  | * Fix mutable default parameter bug when using multiple displays    | 2020/11/15 |
+------------+---------------------------------------------------------------------+------------+
| **2.7.0**  | * Improved performance for ST7739 and ILI9341 displays              | 2020/11/04 |
+------------+---------------------------------------------------------------------+------------+
| **2.6.0**  | * Drop support for Python 3.5, only 3.6 or newer is supported now   | 2020/10/25 |
|            | * Pin luma.core to 1.x.y line only, in anticipation of performance  |            |
|            |   improvements in upcoming major release                            |            |
+------------+---------------------------------------------------------------------+------------+
| **2.5.0**  | * Add HD44780 LCD display driver                                    | 2020/09/24 |
+------------+---------------------------------------------------------------------+------------+
| **2.4.0**  | * Drop support for Python 2.7, only 3.5 or newer is supported now   | 2020/07/04 |
+------------+---------------------------------------------------------------------+------------+
| **2.3.0**  | * Add PWM backlight control                                         | 2020/01/08 |
+------------+---------------------------------------------------------------------+------------+
| **2.2.0**  | * Add ILI9341 Colour LCD display driver                             | 2019/11/25 |
+------------+---------------------------------------------------------------------+------------+
| **2.1.0**  | * Rework namespace handling for luma sub-projects                   | 2019/06/16 |
+------------+---------------------------------------------------------------------+------------+
| **2.0.0**  | * **BREAKING CHANGES:** Removal of ``luma.lcd.aux.backlight`` class | 2019/06/02 |
|            | * Device classes now incorporate backlight capability               |            |
+------------+---------------------------------------------------------------------+------------+
| **1.1.1**  | * Add support for 160x80 display size for ST7735                    | 2019/03/30 |
|            | * Minor documentation updates                                       |            |
+------------+---------------------------------------------------------------------+------------+
| **1.1.0**  | * Add ST7567 Monochrome LCD display driver (courtesy of @Gadgetoid) | 2018/09/07 |
|            | * Change HT1621 tests                                               |            |
|            | * Update dependencies                                               |            |
+------------+---------------------------------------------------------------------+------------+
| **1.0.3**  | * Changed version number to inside ``luma/lcd/__init__.py``         | 2017/11/23 |
+------------+---------------------------------------------------------------------+------------+
| **1.0.2**  | * Documentation and dependencies updates                            | 2017/10/30 |
+------------+---------------------------------------------------------------------+------------+
| **1.0.1**  | * Update dependencies                                               | 2017/09/14 |
+------------+---------------------------------------------------------------------+------------+
| **1.0.0**  | * Stable version                                                    | 2017/09/09 |
|            | * Remove deprecated methods                                         |            |
+------------+---------------------------------------------------------------------+------------+
| **0.5.0**  | * Add UC1701X Monochrome LCD display driver                         | 2017/06/11 |
+------------+---------------------------------------------------------------------+------------+
| **0.4.1**  | * luma.core 0.9.0 or newer is required now                          | 2017/04/22 |
+------------+---------------------------------------------------------------------+------------+
| **0.4.0**  | * Add HT1621 seven-segment driver                                   | 2017/04/22 |
+------------+---------------------------------------------------------------------+------------+
| **0.3.3**  | * Add deprecation warning for bcm_LIGHT                             | 2017/03/14 |
+------------+---------------------------------------------------------------------+------------+
| **0.3.4**  | * Add support for 128x128 display size for ST7735                   | 2017/04/17 |
|            | * Implement horizontal and vertical offsets (for ST7735)            |            |
|            | * Make backlight configurable as active high or active low          |            |
+------------+---------------------------------------------------------------------+------------+
| **0.3.3**  | * Add deprecation warning for bcm_LIGHT                             | 2017/03/14 |
+------------+---------------------------------------------------------------------+------------+
| **0.3.2**  | * Raise ``error.UnsupportedPlatform`` if RPi.GPIO is not available  | 2017/03/08 |
+------------+---------------------------------------------------------------------+------------+
| **0.3.0**  | * Add ST7735 Color TFT LCD display driver                           | 2017/03/05 |
|            | * Removed width and height parameters from device constructors      |            |
|            | * **BREAKING CHANGES:** Move backlight class to different package   |            |
+------------+---------------------------------------------------------------------+------------+
| **0.2.3**  | * Allow PCD8544 driver constructor to accept any args               | 2017/03/02 |
+------------+---------------------------------------------------------------------+------------+
| **0.2.2**  | * Restrict exported Python symbols from ``luma.lcd.device``         | 2017/03/02 |
+------------+---------------------------------------------------------------------+------------+
| **0.2.1**  | * Bugfix: Backlight didn't switch off properly                      | 2017/01/23 |
|            | * Add tests                                                         |            |
+------------+---------------------------------------------------------------------+------------+
| **0.2.0**  | * **BREAKING CHANGES:** Package rename to ``luma.lcd``              | 2017/01/13 |
+------------+---------------------------------------------------------------------+------------+
| **0.0.1**  | * Bit-bang version using wiringPi                                   | 2013/01/28 |
+------------+---------------------------------------------------------------------+------------+