The glcd Driver

Markus Dolze

The glcd driver (graphic lcd) driver is a "meta driver" that renders text for display on graphic displays. It uses either a built-in 5x8 font (the same as used in elsewhere in LCDproc) or Freetype 2 to draw the characters and icons into an internal frame buffer. That frame buffer is then copied to the display by a small sub-driver called connection type driver (CT-driver).

Note

LCDproc is compiled with FreeType support by default if it is installed on your system.

Connections

Connection type t6963

Support for displays using a Toshiba T6863 controller connected to the parallel port. Wiring is the same as for the t6963 driver. Refer to the section called “Connections” for details.

If used without FreeType this connection type uses the same font as the t6963 driver but draws the characters into the graphic memory of the T6963.

Important

You must configure the display for 8x8 font to make this connection type work!

Connection type png

This connection type writes out the frame buffer into files in /tmp. The files are named lcdproc######.png where ###### is a number starting at 0.

Tip

As a new file is written on any change to the screen it is best to turn off the heartbeat.

Connection type serdisplib

Use the serdisplib library (http://serdisplib.sourceforge.net/) for output. This enables use of a number of graphical displays connected to a parallel, serial, or USB port. See the serdisplib web page for details, especially for available options for your display.

Connection type glcd2usb

Support for the glcd2usb device (http://www.harbaum.org/till/glcd2usb/index.shtml, a graphic LCD to USB converter based on Atmel ATmega16 and the V-USB stack. This device features an adjustable backlight and 4 keys. Right now only displays with the KS0108 controller are supported.

The device has 4 keys which may be configured using the KeyMap_A (leftmost key) to KeyMap_D (rightmost key) settings.

Note that any size setting configured in LCDd.conf is ignored as the size reported by the device is used.

Configuration in LCDd.conf

[glcd]

Settings affecting all connection type drivers

ConnectionType = { t6963 | glcd2usb | png | serdisplib }

Specify which connection type to use. See above for details.

Size = WIDTH x HEIGHT

Specifies the size of the LCD in pixels. Default: 128x64. Maximum value supported: 640x480.

The size in characters is automatically calculated from this value and the CellSize value (see below) and cannot be configured.

Contrast = CONTRAST

Set the initial contrast (if supported by the connection type driver). Legal values for CONTRAST are 0 - 1000. If not given, it defaults to 600.

Brightness = BRIGHTNESS

Set the initial brightness when the backlight is "on" (if supported by the connection type driver). Legal values are 0 - 1000. If not given, it defaults to 800.

OffBrightness = BRIGHTNESS

Set the initial brightness when the backlight is set "off" (if supported by the connection type driver). Legal values are 0 - 1000. If not given, it defaults to 100.

Available parameters if compiled with FreeType support

useFT2 = { yes | no }

Tell whether to use FreeType2 or not. It is set to yes by default. If turned off (set to no), the fixed internal 5x8 font is used to draw characters and icons.

normal_font = FONTFILE

Set path to the font file to use, e.g. /usr/local/lib/X11/fonts/TTF/andalemo.ttf. This option is required if FreeType 2 support is enabled, but it is not set to any default value. A font with a fixed character width (monotype) is strongly recommended.

fontHasIcons = { yes | no }

Many fonts to not include the Unicode glyphs used for drawing icons. If this option is set to no then the internal 5x8 font is used even if FreeType is enabled. This option is on (yes) by default.

CellSize = WIDTH x HEIGHT

Specifies the size of the character cell in pixels. Characters will be drawn within this cell. Default: 6x8; minimum value 4x6; maximum value: 24x32.

Keypad settings

KeyRepeatDelay = DELAY

DELAYis the time in milliseconds from first key report to first repeat. Set to 0 to disable repeated key reports. Allowed values are between 0 and 3000, the default is 500.

KeyRepeatInterval = DELAY

DELAYis the time in milliseconds between repeated key strokes. Allowed values are between 0 and 3000, the default is 300. This setting is ignored, if KeyRepeatDelay is disabled (set to zero).

KeyMap_A = KEY , KeyMap_B = KEY , KeyMap_C = KEY , KeyMap_D = KEY , KeyMap_E = KEY , KeyMap_F = KEY

These settings allow to assign arbitrary key strings to key strokes. Up to 26 keys may be configured ('A' to 'Z').

The following is the built-in default mapping hard-coded in the driver. Only keys 'A' to 'F' are used by default.

KeyMap_AUp
KeyMap_BDown
KeyMap_CLeft
KeyMap_DRight
KeyMap_EEnter
KeyMap_FEscape

Settings for the t6963 connection type

Port = PORT

Specify the address of the parallel port the LCD is connected to. Common values for PORT are 0x278, 0x378 and 0x3BC. If not given, the default is 0x378.

bidirectional = { yes | no }

Use parallel port in bi-directional mode. [default: yes; legal: yes, no]

Most LPT ports can be used in bi-directional mode. It is required for proper timing of the display.

delayBus = { yes | no }

Use additional delay in read / write operations. [default: no; legal: yes, no]. As the driver implements busy checking usually no additional delays are required.

Settings for the serdisplib connection type

serdisp_name = NAME

This is the name or alias to select a display driver in the serdisplib library. As there is not default value setting this option is mandatory.

serdisp_device = DEVICE

Set the device to use. Unlike elsewhere in LCDd.conf this is a device description understood by serdisplib. As there is not default value setting this option is mandatory.

serdisp_options = OPTIONS

OPTIONS is a serdisplib option string, which is a list of semicolon separated key / value pairs. Use this to pass any additional options to serdisplib, e.g. wiring or rotation settings.

Note

As the value will contain equal signs the whole OPTIONS value must be enclosed in double quotes.

The display width and height are always set using the values from the glcd driver (see above). Any width / height values set in the option string will be ignored.