Python library for controlling HD44780-compatible character LCDs via GPIO or I2C backpacks.
Python_lcd is a Python library for controlling HD44780-compatible character LCD displays. It provides a unified interface to communicate with these LCDs using either direct GPIO pins or I2C backpack modules, simplifying integration into embedded systems and DIY electronics projects.
Embedded developers, hobbyists, and makers working with single-board computers (like Raspberry Pi, ESP8266, or Pyboard) who need to add simple text output via character LCDs.
It offers a hardware-agnostic core with platform-specific drivers, extensive documentation, and support for custom characters, making it a versatile and reliable choice for LCD control across multiple environments.
Python based library for talking to character based LCDs.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports HD44780 controllers found in common LCDs like 16x2 or 20x4, ensuring it works with a broad range of displays used in embedded projects.
Allows communication via direct GPIO (4 or 8 pins) or I2C backpacks (e.g., PCF8574), reducing pin usage and simplifying wiring for constrained systems.
Includes hardware abstraction layers for Linux, ESP8266, ESP32, Pyboard, and more, making it easy to port code between different microcontrollers and SBCs.
Provides detailed examples and methods for creating and animating custom 5x8 pixel characters, enabling icons, batteries, and simple graphics on the display.
The library is strictly synchronous, requiring users to seek separate async drivers for non-blocking operations, as noted in the README with a link to an external project.
With over 20 separate files for different platforms and interfaces (e.g., esp32_gpio_lcd.py, pyb_i2c_lcd.py), it can be confusing to select the correct one and maintain consistency across projects.
Installing on CPython requires additional steps like installing python-dev headers and smbus, which might be error-prone or challenging in headless or restricted environments.