A fast MicroPython driver for ST7789 display modules, written in C with support for fonts, images, and graphics.
ST7789_mpy is a MicroPython driver for controlling ST7789-based LCD displays, commonly used in embedded projects. It provides a fast, C-accelerated interface for drawing text, images, and shapes, solving the need for responsive graphics on microcontrollers. The driver supports various display sizes and includes utilities for font and image handling.
Embedded developers and hobbyists using MicroPython on platforms like ESP32, Raspberry Pi Pico, or STM32 who need to drive ST7789 (or compatible) displays for user interfaces or visual feedback.
It offers superior performance over pure Python drivers, includes a rich feature set (fonts, images, polygons), and supports a wide range of devices and configurations out of the box.
Fast MicroPython driver for ST7789 display module written in C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written in C for microcontrollers, it delivers fast graphics rendering essential for responsive interfaces, as highlighted in the README's emphasis on speed and optimization.
Supports bitmap fonts from PC text modes, TrueType conversion, Hershey vector fonts, and extensive primitives like polygons, enabling versatile visual design without external libraries.
Extends beyond ST7789 to support ST7735, ILI9341, and others via custom init commands, with pre-built configs for popular boards like M5Stack and T-Display.
Includes bounding tracking to monitor modified display areas, optimizing performance by redrawing only necessary sections, as demonstrated in the watch.py example.
Requires setting up ESP-IDF, cloning multiple repos, and manually integrating the driver into MicroPython—a process the README admits can be error-prone and time-consuming.
JPG and PNG decoding demands significant RAM, forcing a slow mode for large images and limiting use on memory-constrained devices, a trade-off explicitly mentioned in the documentation.
Users must manually determine color order, inversion mode, and display offsets using helper scripts, adding friction to initial setup compared to plug-and-play drivers.