All displays use segment LCD technology controlled by I2C or 3-wire serial protocol. Select by controller type and application.
PCF85176 (I2C) Displays
RAW LCD
Purpose: Testing and debugging new LCD implementations
- Type: Test harness
- Wiring: I2C only (2 pins: SDA, SCL)
- Features: Send raw segment data directly to controller
- Use Case: Prototype new displays before creating dedicated driver
- Example:
examples/PCF85176/RawLCD/
6-Digit Signal/Battery/Progress
Specifications:
- Digits: 6 7-segment digits
- Features: Signal strength (4 bars), Battery level (3 states), Progress indicator
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Example:
examples/PCF85176/6DigSigBattProgress/
- Purchase: https://aliexpress.com/item/1005009214559485.html
Code Example:
SegLCD_PCF85176_6DigSigBattProgress lcd(Wire);
lcd.init();
lcd.setCursor(0, 0);
lcd.print(123456);
lcd.setSignal(3);
lcd.setBattery(2);
PCF85176 driver for 6-digit LCD with signal/battery/progress.
2-Row 4-Digit Signal/Battery/Power
Specifications:
- Digits: 2 rows × 4 digits
- Features: Signal (1 bit), Battery (4 levels), Power icon
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Example:
examples/PCF85176/2Row4DigSigBatPwr/
Code Example:
lcd.init();
lcd.setCursor(0, 0);
lcd.print(1234);
lcd.setCursor(1, 0);
lcd.print(5678);
lcd.setSignalLevel(1);
lcd.setBatteryLevel(4);
lcd.setPowerSymbol(true);
PCF85176 driver for 2-row 4-digit LCD with signal/battery/power.
Definition SegLCD_PCF85176_2Row4DigSigBatPwr.h:13
One Digit (Up to 5 Segments)
Specifications:
- Digits: 1 custom segment display
- Features: Customizable segment layout (up to 5 segments)
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Example:
examples/PCF85176/OneDigit/
- Purchase: https://aliexpress.com/item/1005005410565386.html
Temperature/Humidity
Specifications:
- Digits: 6 7-segment digits
- Features: Temperature and humidity symbols
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Example:
examples/PCF85176/TempHumidity/
- Purchase: https://aliexpress.com/item/1005003044283980.html
Code Example:
SegLCD_PCF85176_TempHum lcd(Wire);
lcd.init();
lcd.setCursor(0, 0);
lcd.print(23);
lcd.setCursor(1, 0);
lcd.print(45);
PCF85176 driver for temperature/humidity LCD.
T1T2 LCD
Specifications:
- Layout: 3-row display (Clock, T1 Label, T2 Label)
- Features: Multi-zone control for temperature sensors
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Example:
examples/PCF85176/T1T2Lcd/
4DR821B / 4DT821B (Tesla)
Specifications:
- Segments: Custom Tesla dashboard display
- Features: Multiple symbol zones
- Wiring: I2C (SDA, SCL)
- I2C Address: 0x38 (SA0=0) or 0x39 (SA0=1)
- Controller: PCF85176
- Image:
- Reference: https://www.teslakatalog.cz/4DR821B.html
- Example:
examples/PCF85176/4DR821B/
4+6 Digit Maint/Bat/Sig/Units
Specifications:
- Digits: 4 digits (main) + 6 digits (status)
- Features: Maintenance, Battery, Signal, Unit symbols
- Wiring: I2C (SDA, SCL)
- Controller: PCF8576 (enhanced variant)
- Image:
- Example:
examples/PCF8576/4Seg6SegMaintSegBatUnits/
- Purchase: https://aliexpress.com/item/1005009599538480.html
HT1621 (3-Wire Serial) Displays
4-Digit with Degree Symbols
Specifications:
- Digits: 4 7-segment digits
- Features: Degree symbol, Colon for time display
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial
- Controller: HT1621 (integrated in module)
- Image:
- Example:
examples/HT1621/4DigDeg/
- Purchase: https://aliexpress.com/item/1005009301473702.html
Code Example:
const int CLK = 5, DATA = 6, CS = 7;
lcd.init();
lcd.setCursor(0, 0);
lcd.print(25);
HT1621 driver for 4-digit LCD with degree symbol and colon.
4-digit 7-segment LCD with degree symbol and colon (HT1621).
Definition SegLCD_HT1621_4SegDegree.h:19
Wiring Example (Arduino Uno):
HT1621 Module → Arduino
CLK → Pin 5
DATA → Pin 6
CS (chip sel) → Pin 7
VCC → 3.3V or 5V
GND → GND
6-Digit with Battery
Specifications:
- Digits: 6 7-segment digits
- Features: Battery level indicator (3-4 states)
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial
- Controller: HT1621 (integrated)
- Image:
- Example:
examples/HT1621/6DigBat/
- Purchase: https://aliexpress.com/item/1005005555160141.html
Code Example:
const int CLK = 5, DATA = 6, CS = 7;
lcd.init();
lcd.print(123456);
lcd.setBattery(2);
HT1621 driver for 6-digit LCD with battery indicator.
6-digit 7-segment LCD with battery indicator (HT1621).
Definition SegLCD_HT1621_6SegBat.h:19
LCM0844
Specifications:
- Digits: 8 7-segment digits
- Features: Left/right units, status labels, battery/load indicators, power-flow symbols
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial
- Controller: HT1621 (integrated)
- Image:
- Example:
examples/HT1621/LCM0844/
- Purchase: https://www.aliexpress.com/item/1005010575036798.html
Code Example:
const int CLK = 5, DATA = 6, CS = 7;
lcd.init();
lcd.print("12.34");
lcd.setBatteryLevel(4);
lcd.setLoadLevel(3);
HT1621 driver for 6-digit LCD with battery indicator.
LCM0844 LCD (HT1621).
Definition SegLCD_HT1621_LCM0844.h:16
LCM88128
Specifications:
- Digits: 8 7-segment digits
- Features: Left/right units, status labels, battery/load/PV indicators, power-flow symbols
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial
- Controller: HT1621 (integrated)
- Image:
- Example:
examples/HT1621/LCM88128/
- Purchase: https://www.aliexpress.com/item/1005010569015863.html
Code Example:
const int CLK = 5, DATA = 6, CS = 7;
lcd.init();
lcd.print("12.34");
lcd.setPVLevel(4);
lcd.setBatteryLevel(3);
lcd.setLoadLevel(2);
HT1621 driver for LCM88128 LCD with battery, PV panel, and diagram indicators.
LCM88128 LCD (HT1621).
Definition SegLCD_HT1621_LCM88128.h:17
@ SYMBOL_LINE_WIND_TO_ACDC
Definition SegLCD_HT1621_LCM88128.h:112
@ UNIT_RIGHT_VOLT
Definition SegLCD_HT1621_LCM88128.h:47
LCM59011
Specifications:
- Digits: 4 7-segment digits
- Features: Colon, wifi signal, battery indicator, MCB label, units, status symbols
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial
- Controller: HT1621 (integrated)
- Image:
- Example:
examples/HT1621/LCM59011/
Code Example:
const int CLK = 5, DATA = 6, CS = 7;
lcd.init();
lcd.print("12:3");
lcd.setSignalLevel(4);
lcd.setBatteryLevel(5);
HT1621 driver for LCM59011 4-digit LCD with wifi/battery/misc symbols.
LCM59011 LCD (HT1621).
Definition SegLCD_HT1621_LCM59011.h:26
@ UNIT_PERCENT
Definition SegLCD_HT1621_LCM59011.h:31
@ LABEL_MCB
Definition SegLCD_HT1621_LCM59011.h:36
@ SYMBOL_ECO
Definition SegLCD_HT1621_LCM59011.h:42
@ SYMBOL_BLUETOOTH
Definition SegLCD_HT1621_LCM59011.h:47
RAW LCD (HT1621)
Purpose: Testing and prototyping with HT1621
- Type: Test harness
- Wiring: 3-wire serial (CLK, DATA, CS)
- Features: Send raw segment data to HT1621
- Example:
examples/HT1621/RawLCD/
HT1622 (3-Wire Serial, Enhanced)
10-Digit 16-Segment Display
Specifications:
- Digits: 10 digits with 16-segment layout
- Features: Enhanced segment capability (alphanumeric capable)
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial (4μs timing)
- Controller: HT1622 (integrated, larger RAM)
- Image:
- Example:
examples/HT1622/10Digit16SegmentLCD/
- Purchase: https://aliexpress.com/item/1005003062619251.html
RAW LCD (HT1622)
Purpose: Testing and prototyping with HT1622
- Type: Test harness
- Wiring: 3-wire serial (CLK, DATA, CS)
- Features: Send raw segment data to HT1622
- Timing: Requires 4μs pulse width
- Example:
examples/HT1622/RawLCD/
VK0192 (3-Wire Serial)
5-Digit Signal/Battery/Progress
Specifications:
- Digits: 5 7-segment digits
- Features: Signal bars (4), Battery level (3), Progress indicator
- Wiring: 3 pins (CLK, DATA, CS) + Power + GND
- Protocol: 3-wire serial (4μs timing)
- Controller: VK0192 (24×8 bit RAM, irregular addressing)
- Image:
- Example:
examples/VK0192/5DigSigBattProgress/
- Purchase: https://aliexpress.com/item/1005009000021475.html
Code Example:
#include "SegLCD_VK0192_5SegSigBatProg.h"
const int CLK = 5, DATA = 6, CS = 7;
SegLCD_VK0192_5SegSigBatProg lcd(CLK, DATA, CS);
lcd.init();
lcd.print(12345);
lcd.setSignal(3);
lcd.setBattery(1);
Quick Comparison
| Controller | Protocol | Pins | I2C Addr | Examples | Complexity |
| PCF85176 | I2C | 2 | 0x38/0x39 | 7 | Simple |
| PCF8576 | I2C | 2 | 0x38/0x39 | 1 | Simple |
| HT1621 | 3-wire | 3 | N/A | 4 | Medium |
| HT1622 | 3-wire | 3 | N/A | 2 | Medium |
| VK0192 | 3-wire | 3 | N/A | 1 | Advanced |
Adding a New Display
Don't see your LCD? Follow the Adding New LCD guide to create support for any segment display.
Resources