Skip to content

Latest commit

 

History

History
399 lines (308 loc) · 10.8 KB

File metadata and controls

399 lines (308 loc) · 10.8 KB

Supported LCD Displays

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: 6-digit display
  • Example: examples/PCF85176/6DigSigBattProgress/
  • Purchase: https://aliexpress.com/item/1005009214559485.html

Code Example:

#include "SegLCD_PCF85176_6DigSigBattProgress.h"
SegLCD_PCF85176_6DigSigBattProgress lcd(Wire);

lcd.init();
lcd.setCursor(0, 0);
lcd.print(123456);
lcd.setSignalLevel(3);   // 3 of 4 bars
lcd.setBatteryLevel(2);  // Medium battery

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: 2-row 4-digit display
  • Example: examples/PCF85176/2Row4DigSigBatPwr/

Code Example:

#include "SegLCD_PCF85176_2Row4DigSigBatPwr.h"
SegLCD_PCF85176_2Row4DigSigBatPwr lcd(Wire);

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);

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: One digit
  • 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: Temp/Humidity
  • Example: examples/PCF85176/TempHumidity/
  • Purchase: https://aliexpress.com/item/1005003044283980.html

Code Example:

#include "SegLCD_PCF85176_TempHum.h"
SegLCD_PCF85176_TempHum lcd(Wire);

lcd.init();
lcd.setCursor(0, 0);  // Temperature row
lcd.print(23);        // 23°C
lcd.setCursor(1, 0);  // Humidity row
lcd.print(45);        // 45%

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: T1T2
  • 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: Tesla 4DR821B
  • 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: 4+6 Digit
  • 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: 4-digit with degree
  • Example: examples/HT1621/4DigDeg/
  • Purchase: https://aliexpress.com/item/1005009301473702.html

Code Example:

#include "SegLCD_HT1621_4SegDegree.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_HT1621_4SegDegree lcd(transport, CS);

lcd.init();
lcd.setCursor(0, 0);
lcd.print(25);      // Display "25°"

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: 6-digit with battery
  • Example: examples/HT1621/6DigBat/
  • Purchase: https://aliexpress.com/item/1005005555160141.html

Code Example:

#include "SegLCD_HT1621_6SegBat.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_HT1621_6SegBat lcd(transport, CS);

lcd.init();
lcd.print(123456);
lcd.setBatteryLevel(2);  // Medium battery

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: LCM0844
  • Example: examples/HT1621/LCM0844/
  • Purchase: https://www.aliexpress.com/item/1005010575036798.html

Code Example:

#include "SegLCD_HT1621_LCM0844.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_HT1621_LCM0844 lcd(transport, CS);

lcd.init();
lcd.print("12.34");
lcd.setBatteryLevel(4);
lcd.setLoadLevel(3);

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: LCM88128
  • Example: examples/HT1621/LCM88128/
  • Purchase: https://www.aliexpress.com/item/1005010569015863.html

Code Example:

#include "SegLCD_HT1621_LCM88128.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_HT1621_LCM88128 lcd(transport, CS);

lcd.init();
lcd.print("12.34");
lcd.setPVLevel(4);
lcd.setBatteryLevel(3);
lcd.setLoadLevel(2);
lcd.setUnits(SegLCD_HT1621_LCM88128::UNIT_RIGHT_VOLT);
lcd.setSymbols(SegLCD_HT1621_LCM88128::SYMBOL_LINE_WIND_TO_ACDC);

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: LCM59011
  • Example: examples/HT1621/LCM59011/

Code Example:

#include "SegLCD_HT1621_LCM59011.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_HT1621_LCM59011 lcd(transport, CS);

lcd.init();
lcd.print("12:3");
lcd.setSignalLevel(4);
lcd.setBatteryLevel(5);
lcd.setLabels(SegLCD_HT1621_LCM59011::LABEL_MCB);
lcd.setUnits(SegLCD_HT1621_LCM59011::UNIT_PERCENT);
lcd.setSymbols(SegLCD_HT1621_LCM59011::SYMBOL_ECO | SegLCD_HT1621_LCM59011::SYMBOL_BLUETOOTH);

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: 10-digit 16-segment
  • 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: 5-digit signal/battery
  • Example: examples/VK0192/5DigSigBattProgress/
  • Purchase: https://aliexpress.com/item/1005009000021475.html

Code Example:

#include "SegLCD_VK0192_5DigSigBattProgress.h"

const int CLK = 5, DATA = 6, CS = 7;
SegTransport3WireArduino transport(DATA, CLK);
SegLCD_VK0192_5DigSigBattProgress lcd(transport, CS);

lcd.init();
lcd.print(12345);
lcd.setSignalLevel(3);    // 3 of 4 bars
lcd.setBatteryLevel(1);   // Low battery

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