This MicroPython and CircuitPython library provides a hardware driver for a variety of displays based on the Holtek KT16K33 controller chip, including four-digit, seven-segment LEDs; four-digit, 14-segment LEDs; 8x8 and 16x8 monochrome matrix LEDs; and bi-colour 8x8 matrix LEDs. It also supports four-digit, 14-segment LEDs based on the VK16K33 controller from Freenove.

Importing the Drivers

The driver package comprises a parent generic HT16K33 class and child classes for the various displays themselves. All your code needs to do is import the latter. For example:

from ht16k33segment import HT16K33Segment

You can then instantiate the driver object. This requires a configured I2C bus object as generated by your chosen version of Python.

Some methods are provided by the parent module, others by the display module. All available methods are documented under a given display module’s documentation.

You will need to add both the child display driver module and the parent file to your device.


HT16K33 is compatible with MicroPython and CircuitPython.

Source Code

You can find the source code on GitHub.

Display-specific Modules