The LCD2USB is a cheap do-it-yourself interface to connect HD44780 based text lcd displays via USB. LCD2USB is cheap and consists of easy-to-obtain parts only. The interface has been tested with 2*16, 2*20, 4*20, 4*27 and 4*40 displays and supports software adjustable contrast and backlight as well as dual controller displays (required for 4*27 and 4*40).
It is based upon the AVR USB implementation. This is a pure software implementation of the USB protocol for the Atmel AVR microcontroller series.
The whole interface incl. the hardware layout is under a GPL like license. This means that you can take these schematics and use it as a basis for your own interface e.g. for a graphic LCD.
Display <name> { Driver 'LCD2USB' Size '<string>' Bus '<string>' Device '<string>' Contrast <number> Brightness <number> Icons <number> asc255bug <0|1> }
Driver | 'LCD2USB' |
Size | <column>x<rows> example '16×2' |
Bus | Bus name as displayed during USB scan (e.g. '003'). Only required when using multiple LCD2USB interfaces. |
Device | Device name as displayed during USB scan (e.g. '004'). Only required when using multiple LCD2USB interfaces. |
Contrast | initial contrast value, 0..255 (useful range depends on the display) |
Brightness | initial backlight brightness, 0..255 |
Icons | Number of user-defined chars reserved for Icons (default: 0) |
asc255bug | set to 1 if you don't get solid blocks in bars, but an a wire character |
Display LCD2USB { Driver 'LCD2USB' Bus '003' Device '004' Contrast 250 Brightness 200 Icons 1 }
The driver provides the following functions:
LCD::contrast(n) | set contrast to n (0..255, range depends on the display) |
LCD::brightness(n) | set backlight brightness (0..255) |
The driver includes routines to read the button states, but at the moment (lcd4linux-0.10.1-CVS) there is no support for buttons in the framework.
According to https://ssl.bulix.org/projects/lcd4linux/wiki/widget_keypad the keypad widget of LCD4Linux-0.10.1-RC1 supports the buttons of LCD2USB.