Display HT16K33 4 digit 7 segments 0.8"


I wanted some displays slight different that the ebay/aliexpress offering and decided to design my own.
The idea with this design is that my LED display driver library supports this schematic. This means that in addition to the boards designed here, the schematic can also be included in other projects (With or without indicators and buttons) and then the library will support the display for that design.

    Display HT16K33 4 digit 7 segments 0.8"
        Parts to use
        Part list
        Using the button input
        Circuit board


Parts to use

For the digits I selected dual 7 segment 0.8" displays, I can have 2 of these within 10cm. For indicators I decided to use a 5mm RGB led for each digit, this is a very flexible solution.
The above means I have 4x8 leds for the displays and 4x3 leds for the indicators for a total of 44 leds to drive.

The displays I uses are from KingBright:
DSC_0245 DSC_0246

Digits Segment-names

There exist multiple pin configurations for dual 7 segment displays, this is a 18 pin version with each segment on its own pins.

For driving LED displays the typical chips are: For the above number of displays and indicators the HT16K33 28 pin has way to many segment drivers, but because I use it in my other PCBs I will also use it here.

The indicator is a standard common cathode 5mm RGB led:




A important point for me was to keep the amount of soldering (especially SMD) as low as possible, i.e. only include what is absolute necessary for the circuit. That affect how I designed the button interface.
Because the chip uses the same matrix for buttons as for display, pressing two buttons will short two segments, this do not in any way damage the chip or display, but it looks silly. To avoid this each button can include a series diode, I did not make space for them on the circuit board. They can be mounted at the buttons if desired.

This design is for 5V and is not guaranteed to work when connected to 3.3V processors, a level translator must be included between the display and the processor.

MemoryMap Segment-names

The memory map of the HT16K33 controller it is very simple.

Part list

ReferenceNumber ofComponent
U1, U22KingBright DC08-11 any color or similar (pinout is fairly standard)
D1, D2, D3, D44RGB 5mm led
U41HT16K33 28 pin
R1, R2, R3, R4, R5522kohm 0805
C11100nF 0805
C2147uF 1206 (Smaller capacity can be used)
D711N4148 diode SOD323 or other small diode.
J119 pin strip
J2, J324 pin strip

The price is controlled by two items: The displays (About $2.2 each) and shipping, everything else is about $2 together. It is necessary to buy for multiple PCBs to get this price (i.e. 10 displays, 5 pcbs and 10-100 each of the passive parts and the diodes).
I got the displays from mouser.com and the HT16K33 from lcsc.com (It is also on aliexpress.com).
The other parts are from aliexpress.com, ebay.com and lcsc.com

Using the button input

SchematicNoDiodes SchematicOneDiodes SchematicDiodess

The button switches can be wires with or without diodes: The chip supports up to 39 buttons using 3 scan lines and 13 input lines. If more than 8 buttons are needed it is possible to find the signals on the back of the PCB on the display pins. The library reads all buttons inputs, but do not return more than the first 8, to get more the code must be modified.

Circuit board




The board size and placement of mounting holes.



Here is the board finished board, it have a few bugs on it: The D7 symbol is the wrong way around. The bug is fixed in the attached gerbers and project files.


For easiest mounting use this sequence:

The chip has a marking at pin 1 and must be mounted in the orientation shown above (The white line indicates pin 1).


Diodes has a line to mark direction, this line must be mounted towards the jumper pads.


Orientation of display, the button connector is bottom.


The long pin of 4 pins RGB leds goes in the marked hole. With single color leds it is the short pin that goes into the marked hole and the long pin goes in the 4 hole, this means they will be on the blue indicator line.


The board is mounted.


Two boards in series.


To use multiple boards the correct address links must be shorted:


All parts can be mounted on the PCB, but it may not be necessary. This means the simplest version is only HT16K33, two capacitors, one 4 pin connector and 1 to 2 displays.


This is a regular 7 segment module, that adds indicators and button inputs. It also makes it possible to mount multiple modules edge to edge and control them as one big display with my library.


KiCad project

LED display driver library