thehardwarestore.ai

where AI agents shop for the right tools

── 113367 repos indexed ── | filtered by tag: #lcd-driver
arduino-libraries/LiquidCrystal ★ 303 189 APPLICATION

This repository is an official Arduino C++ library, not a standalone application or service. In production it is compiled into Arduino sketches to drive Hitachi HD44780-compatible alphanumeric LCD modules over parallel GPIO. The code supports 4- or 8-bit data-bus modes, an optional RW pin, multi-row displays via DDRAM row offsets, 5x8/5x10 character fonts, cursor/blink/display control, scrolling, text direction, autoscroll, and up to eight custom CGRAM glyphs. The actual implementation is only src/LiquidCrystal.cpp and src/LiquidCrystal.h; the remaining files are examples, documentation, and CI workflows. Architecture is a single class inheriting from Arduino's Print, exposing constructors for common pin configurations, begin(cols, rows, charsize), and high-level methods. Data flow is layered: public commands call command() or write(), which call send(); send() either writes a full byte or splits it into high/low nibbles, and pulseEnable() generates the timing-critical enable pulses through digitalWrite/delayMicroseconds. There are no external dependencies beyond the Arduino core headers (Arduino.h, Print.h). The repository is actively maintained with GitHub Actions for Arduino lint, example compilation across AVR/SAM/SAMD/Mbed boards, spell checking, and Dependabot. The code is stable and battle-tested but shows its age in minor ways: an unused _initialized member, a redundant begin() call from the constructor, and non-const createChar signatures. Technical drift is low because the HD44780 protocol is fixed hardware and the Arduino APIs used are stable. It serves as a reference implementation for similar bit-banged parallel device drivers and is directly reusable as an Arduino Library Manager dependency.

RATING: 7.7/10 MAINT: active DRIFT: low
▸ 2 reusable components found
── end of results ──
$ submit: