Now I add another one to the many descriptions found on the internet that deal with the construction of a LC display that connects to a parallel port and runs under Linux. The background brightness of my version can be switched, this can be used for blinking. Herby it's more easy to detect important events from greater distance from the display. It can blink for example if a fax, E-Mail or a message on the answering machine was received.
On the back side of the plastic enclosure I have fixed a metal piece with a foto mount thread for mounting the display on a small foto stativ with a ball-and-socket joint.
The diplay is connected to the computer via a 25 wire flat cable. Because the parallel port doesn't deliver +5V power, this will be taken from the USB connector and inserted into the flat cable. This works for me even with a cable length of 10m.
My server has no keyboard, mouse or grafik adapter. Using the display I can see some important information without the need of a remote login from another computer via network. With the help of a remote control I can send commands to control the server.
As an example, with a TV card and vbidecode share price data could be extracted from the videotext pages of a local TV station and presented on the display.
For the LC display I used a MODEL 2024STLDYGBN-D (unknown manufacturer). It is based, as most of these displays, on a HD44780 controller and has 4 rows with 20 characters each on an area of 76mm x 25mm. General information about these displays can be found in the LCD FAQ.
For signal decoupling I use Schmitt trigger inverters 74LS14 on the inputs. All data lines have a pull-up resistor of 4k7 to +5V, on the control lines the pull-ups are 1k0. The more critical input EN is damped with an additional 2n2 capacitor to ground for avoiding malfunctions.
My driver is based on lcd-0.12 from Nils Faerber and Michael Engel and was adopted and expanded to meet my requirements. It is linked to the system as a device driver. To present some text on the display you simply write it to the device /dev/lcd. The cursor positioning can be don with special control sequences.
A few interface code fragments using Perl: