You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
devices/hd44780
George Sexton 98dbd48829 Change backlight implementation 1 year ago
..
README.md Initial add 1 year ago
af_i2c_backpack.go Change backlight implementation 1 year ago
backlight.go Change backlight implementation 1 year ago
dev.go Initial add 1 year ago
example_test.go Change backlight implementation 1 year ago
hd44780.go Change backlight implementation 1 year ago
hd44780_test.go Initial add 1 year ago
pcf857x_backpack.go Change backlight implementation 1 year ago

README.md

Hitachi HD44780 Package

Overview

The Hitachi HD44780 is an LCD driver chip. It's used in a variety of text LCD displays. The datasheet is available here:

https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

Generally, there are three kinds of displays that use this chip.

  1. A raw display. This is a board with a row of pin connectors at the top. It's made for interfacing directly to GPIO pins. This is the most complicated method of using the LCD because you have to wire a minimum of 6 GPIO pins (4 data, 1 reset, 1 enable) and 2 power pins to make it work.

There are also complex initialization routines that have to be performed. This is further complicated by having specific initialization calls depending upon whether the device is connected to 4 data lines, or 8 data lines.

  1. A backpack display. With this type of LCD display, an I2C, serial, or SPI interface is provided. This type of display is easier because there are fewer pins, but the complex intialization remains. Examples of backpack interfaces include The Adafruit I2C/SPI backpack (MCP23008/74HC595D), the generic LCDXXXX/PCF8547T backpack, etc.

  2. The third and final variety is the "Intelligent" display. These displays have a micro-controller that is connected to the LCD chip. Typically these intelligent displays support multiple I/O methods and the micro-controller handles the LCD initialization/communication.

Examples of this kind of display would be the SparkFun SerLCD display, the MatrixOrbital LK2047T, the AdaFruit USB+Serial Backpack etc.

Interfacing Notes

The driver package is designed to use the gpio.Group interface. This allows the LCD driver to be agnostic about the physical connection between the display and the host device. Any host/expander that supports the GPIO group can be used to easily drive the LCD display.

Hardware Notes

DO NOT attempt to source VCC for the unit backlight, or sink VCC to ground. The backlight draws ~250ma of current which exceeds the current capability of GPIO pins. It will permanently damage your device. If you would like to control the backlight, connect a GPIO pin through a 1K Ohm resistor to a transistor (2N2222 or equivalent).

Troubleshooting

If nothing displays at all, check the contrast. Adjust the contrast control until the 5x7 dot grid on the display is visible.

If the text is garbled, verify the gpio.Group is configured and the IO Pins are connected to the right pins of the LCD display.