Skip to main content

A library to drive PCD8544, HD44780, HT1621, ST7735, ST7789, ST7567, UC1701X and ILI9341-based LCD displays

Project description

luma.core | luma.docs | luma.emulator | luma.examples | luma.lcd | luma.led_matrix | luma.oled

luma.lcd

HD44780, PCD8544, ST7735, ST7789, ST7567, HT1621, UC1701X, ILI9341 Display Drivers

https://github.com/rm-hull/luma.lcd/workflows/luma.lcd/badge.svg?branch=master https://coveralls.io/repos/github/rm-hull/luma.lcd/badge.svg?branch=master Documentation Status https://img.shields.io/pypi/pyversions/luma.lcd.svg https://img.shields.io/pypi/v/luma.lcd.svg https://img.shields.io/pypi/dm/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, HT1621, and UC1701X controllers.

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

https://raw.github.com/rm-hull/luma.lcd/master/doc/images/hd44780_20x4.jpg https://raw.github.com/rm-hull/luma.lcd/master/doc/images/pcd8544.png https://raw.github.com/rm-hull/luma.lcd/master/doc/images/st7735.jpg https://raw.github.com/rm-hull/luma.lcd/master/doc/images/ht1621.jpg https://raw.github.com/rm-hull/luma.lcd/master/doc/images/uc1701x.png 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-2022 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)

ChangeLog

Version

Description

Date

2.11.0

  • Add ILI9488 Colour LCD display driver

2023/07/02

2.10.0

  • Drop support for Python 3.6

  • Add width and height parameters to ST7789 device

  • Fix timing issue in ili9341

2022/10/19

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

  • Pin luma.core to 1.x.y line only, in anticipation of performance improvements in upcoming major release

2020/10/25

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

  • Device classes now incorporate backlight capability

2019/06/02

1.1.1

  • Add support for 160x80 display size for ST7735

  • Minor documentation updates

2019/03/30

1.1.0

  • Add ST7567 Monochrome LCD display driver (courtesy of @Gadgetoid)

  • Change HT1621 tests

  • Update dependencies

2018/09/07

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

  • Remove deprecated methods

2017/09/09

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

  • Implement horizontal and vertical offsets (for ST7735)

  • Make backlight configurable as active high or active low

2017/04/17

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

  • Removed width and height parameters from device constructors

  • BREAKING CHANGES: Move backlight class to different package

2017/03/05

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

  • Add tests

2017/01/23

0.2.0

  • BREAKING CHANGES: Package rename to luma.lcd

2017/01/13

0.0.1

  • Bit-bang version using wiringPi

2013/01/28

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

luma.lcd-2.11.0.tar.gz (25.3 MB view details)

Uploaded Source

Built Distribution

luma.lcd-2.11.0-py2.py3-none-any.whl (25.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file luma.lcd-2.11.0.tar.gz.

File metadata

  • Download URL: luma.lcd-2.11.0.tar.gz
  • Upload date:
  • Size: 25.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for luma.lcd-2.11.0.tar.gz
Algorithm Hash digest
SHA256 d46044e96fd39943ebe48a61e753371571be1497a4bea96b72e3a9c732fbeee4
MD5 f958b06e4b82dbd7a348834603e78d27
BLAKE2b-256 b845fd72b25d234d1e315e34b1df19dc5e31f93a15b22be91c2195a578dc39aa

See more details on using hashes here.

File details

Details for the file luma.lcd-2.11.0-py2.py3-none-any.whl.

File metadata

  • Download URL: luma.lcd-2.11.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for luma.lcd-2.11.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ecfdde2e86f9ce8820dec254f2972ed4943e08f7101d11bf3117860dc792a5a4
MD5 1726cf030cf8269d68fd09379766da19
BLAKE2b-256 e4d43fd1880d9a1e1c6fa316bea17613fbccdbabd33accf216ad008ccc2eb01f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page