This is a custom Arduino library for interfacing with the HT1621 LCD controller, tailored for complex segmented displays. The library supports rendering numeric and textual information, along with specialized markers and symbols, on custom boards like the one shown in the provided image.
- Full support for the HT1621 LCD driver
- Print numeric and text values
- Built-in handling for markers and symbols (e.g.,
VOLUME,TREBLE,FM, etc.) - Customizable backlight control
- Battery level indicators
- Decimal point and colon rendering
- Display modes (clear, update, and toggle markers)
- Precision handling for numeric and floating-point values
The library includes predefined markers for specific board symbols:
- Audio Settings:
CLASSIC,ROCK,POP,FLAT,JAZZ - Inputs:
AUX,DVD,CD,OPT,COA,RADIO - Playback Controls:
PLAY,PAUSE,FORWARD,PREVIOUS - Audio Channels:
2.1CH,5.1CH - Other Symbols:
USB,CLOCK,TREBLE,MUTE,DELAY,MS
For the full list, see the symbol definitions in the source code.
- Clone this repository or download the ZIP file.
- Place the folder in your Arduino
librariesdirectory. - Restart your Arduino IDE.
This project includes the following components and their respective connections to the microcontroller:

Matrix keypad as in the figure.
- IR Signal: Connected to
IR
- WR (Write): Connected to
P4.1 - Data: Connected to
P4.2 - CS (Chip Select): Connected to
P4.3
- 5V: Supplies power to the board.
- GND: Ground connection.
Important Note:
The board's printing inverts the power pins. Double-check connections using electrolitic capacitors as ground true, before powering up the system to avoid damage.

#include "HT1621.h"
HT1621 lcd;
void setup() {
lcd.begin(10, 11, 12); // Connect CS, WR, DATA pins
lcd.clear();
lcd.backlight();
}
void loop() {
lcd.print(123.45, 2); // Display a floating-point number with two decimals
lcd.setMarker(VOLUME); // Highlight the VOLUME symbol
lcd.display(); // Refresh the display
delay(1000);
}- Use
lcd.print()to display numbers or text. - Use
lcd.setMarker(MARKER)to highlight specific board markers. - For advanced usage, see the example sketches in the repository.
lcd.backlight(); // Turn on backlight
lcd.noBacklight(); // Turn off backlightlcd.clear(); // Clear the display content
lcd.clear_buffer(); // Clear the internal buffer without refreshingThis library is distributed under the MIT License. See LICENSE for more information.
- Based on the segment-lcd-with-ht1621 library by anxzhu.
- Extended and partially rewritten by Valerio Nappi.
- Further customized to support unique display designs.
Feel free to contribute to this project by submitting issues or pull requests. Whether it's enhancing functionality or providing new examples, all contributions are welcome!

