LCDproc User's Guide

The Ultimate Guide to LCDproc 0.5

Peter Marschall

Rene Wagner

Guillaume Filion

William W. Ferrell

0.0.4

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Abstract

This document is a guide to LCDproc written for users. It covers LCDproc 0.5.x


Table of Contents

1. Introduction
About this Document
What is LCDproc?
The LCDproc Server - LCDd
The LCDproc "Main" Client - lcdproc
Other LCDproc Clients
2. How to Obtain LCDproc
Versioning
Download Yesterday's CVS Version of LCDproc as a Tarball
Download The Latest Version of LCDproc from CVS
apt-get
3. Installation
Build LCDproc
Install LCDproc Directly From The Sources
Generate And Install Packages of LCDproc
4. LCDproc Configuration
Configure LCDd
LCDd.conf: The [Server] Section
LCDd.conf: The [Menu] Section
LCDd.conf: The Driver Section
The LCDproc Init Scripts
init-LCDd
init-lcdproc
5. LCDproc Drivers
The bayrad Driver
Features
Configuration in LCDd.conf
The CFontz Driver
Configuration in LCDd.conf
The CFontz633 Driver
Configuration in LCDd.conf
The CFontzPacket Driver
Configuration in LCDd.conf
The curses Driver
Configuration in LCDd.conf
The CwLnx Driver
Features
Configuration in LCDd.conf
The ea65 driver
EA65 front panel VFD
Configuration in LCDd.conf
The Eyebox One Driver (EyeboxOne)
Eyebox One LCD Module
Eyebox One Driver and lcdproc client
Copyright
Configuration in LCDd.conf
The G15 Driver
Features
Configuration in LCDd.conf
The glcdlib Driver
Connections
Configuration in LCDd.conf
The glk Driver
Configuration in LCDd.conf
The HD44780 Driver
Connections
Compiling
Configuration in LCDd.conf
Miscellania
The icp_a106 Driver
Configuration in LCDd.conf
The imon Driver
General
Configuration in LCDd.conf
The IOWarrior Driver
Configuration in LCDd.conf
The irman Driver
Configuration in LCDd.conf
The Joystick Input Driver
Configuration in LCDd.conf
The lb216 Driver
Connections
Configuration in LCDd.conf
The lcdm001 Driver
Configuration in LCDd.conf
The lcterm Driver
Configuration in LCDd.conf
The lirc Driver
Checking Your LIRC Setup
Build LCDd with the lirc Driver
Configure LCDd to Use the lirc Driver
Modify Your ~/.lircrc
The MD8800 Driver
Features
Configuration in LCDd.conf
The ms6931 Driver
Configuration in LCDd.conf
The mtc_s16209x Driver
Configuration in LCDd.conf
The MtxOrb Driver
Matrix Orbital LCD Modules
Matrix Orbital Hardware Installation
Configuration in LCDd.conf
The NoritakeVFD Driver
Configuration in LCDd.conf
The Mini-Box USB LCD (picoLCD 20x2) Driver (picolcd)
Setting up the picoLCD
Configuration in LCDd.conf
picolcd driver status
Copyright
The pyramid Driver
Features
Requirements
LED output
Configuration in LCDd.conf
The sed1330 Driver
Connections
Configuration in LCDd.conf
The sed1520 Driver
Configuration in LCDd.conf
The serialPOS Driver
Connecting The Display
Configuration in LCDd.conf
The serialVFD Driver
Connecting The Display
Configuration in LCDd.conf
The sli Driver
Configuration in LCDd.conf
The stv5730 Driver
Configuration in LCDd.conf
The svga Driver
Configuration in LCDd.conf
The Toshiba T6963 Driver
Connections
Compiling
Configuration in LCDd.conf
Running
The text Driver
Configuration in LCDd.conf
The tyan Driver
Features
Configuration in LCDd.conf
The ula200 Driver
Configuration in LCDd.conf
The xosd Driver
Configuration in LCDd.conf
Parallel Port Troubleshooting
Check The Wiring
Power Source Unregulated / Noisy
Ground Lift
Latchup
Contrast
Parallel Port Voltage
Enable Signal Rise Time
EMI
One or Two Black Lines
Software Too Fast
LED Backlight
HD44780 Compatible
Miscellania
6. Running LCDproc
Running LCDd
Running LCDd from the command line
The Command Line Options of LCDd
Running lcdproc
The Command Line Options of lcdproc
7. Contact Us
Errata
The LCDproc Mailing List
Reporting Bugs
A. GNU Free Documentation License
PREAMBLE
APPLICABILITY AND DEFINITIONS
VERBATIM COPYING
COPYING IN QUANTITY
MODIFICATIONS
COMBINING DOCUMENTS
COLLECTIONS OF DOCUMENTS
AGGREGATION WITH INDEPENDENT WORKS
TRANSLATION
TERMINATION
FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents

List of Figures

5.1. HD44780: Connecting the contrast adjusting pin (Vadj.)
5.2. HD44780: Direct Keys
5.3. HD44780: Single Matrix Key
5.4. HD44780: Complete Key Matrix
5.5. HD44780: One Return Line
5.6. HD44780: Backlight Wiring
5.7. HD44780: Serial LPT wiring ('simple')
5.8. HD44780: Serial LPT wiring ('complex')
5.9. HD44780: Serial LPT - Keypad return lines buffered
5.10. HD44780: Serial LPT - Backlight extra circuit
5.11. HD44780: PCF8574P port expander on I2C bus
5.12. serialVFD: Serial Inverter

List of Tables

5.1. HD44780: Power Connections
5.2. HD44780: Direct Key Mapping
5.3. HD44780: Matrix Keypad Layout
5.4. HD44780: 4bit Pinouts (1)
5.5. HD44780: 4bit Pinouts (2)
5.6. HD44780: 4bit Keypad Pinouts
5.7. HD44780: "Winamp" wiring
5.8. HD44780: "Winamp" wiring - Keypad
5.9. HD44780: "lcdtime" wiring
5.10. HD44780: "lcdtime" wiring - keypad
5.11. HD44780: Serial LPT - Keypad return lines
5.12. HD44780: Examples of I2C port expander addresses
5.13. Mapping between LCDproc keys and IrMan commands
5.14. Mapping of output bits to LEDs
5.15. ConnectionType classic ordered by LCD pins
5.16. ConnectionType classic ordered by LPT port pins
5.17. serialPOS: Emulation Protocol Status
5.18. serialVFD: Display Status
5.19. T6963 wiring schematic

List of Examples

4.1. LCDd.conf: Specify which driver to use
5.1. HD44780: Configuration for I2C with port expander
5.2. LCDd.conf: Activate the lirc driver
5.3. ~/.lircrc: Specify the associations from buttons to keys for the lirc driver
5.4.
5.5. How to use the LED output from the client
6.1. LCDd -h
6.2. lcdproc -h

Chapter 1. Introduction

About this Document

This document was meant as a tutorial for LCDproc users. It tries to introduce you into the world of LCDproc giving you an overview of the project. After reading this document you will be able to set up your own LCDproc'ed system.

Note

Please note that this document is still under construction". We hope to finish it until the final release of LCDproc ⌣. If you run into any trouble feel free to write to the LCDproc mailing list. See http://lcdproc.omnipotent.net/mail.php3 for details on how to subscribe to the list.

Therefore you might want to have a look at http://lcdproc.sourceforge.net/docs/, to get the latest version of this document (unless you want to generate it yourself from the docbook files in the CVS).

This document was originally written for LCDproc 0.4.3, but has been dramatically updated since. At the time of writing there had already been the "LCDproc User's Guide" written by William W. Ferrel in 1999. His version covered an early version of LCDproc and therefore concentrated on Matrix Orbital displays.

William's document was "recycled" for the description of the Matrix Orbital display driver and for other parts of this document.

In several other places e-mails and other documents have been included in this document. The authors of those are listed below every such document.

What is LCDproc?

LCDproc is a client/server suite including drivers for all kinds of nifty LCD displays.

The server LCDd makes it possible to display text and other data on an LCD display. As well LCDd can handle certain input devices.

Support for devices is added by drivers. We distinguish between output and input drivers. LCDd currently supports only one single output driver, which may at the same time handle input. Nevertheless several input (only) drivers are supported.

Currently there are drivers for several serial devices: Matrix Orbital, Crystal Fontz, Bayrad, LB216, LCDM001 (kernelconcepts.de), Wirz-SLI and PIC-an-LCD; and some devices connected to the LPT port: HD44780, STV5730, T6963, SED1520 and SED1330. There are input (only) drivers for LIRC and joysticks.

Clients can connect to LCDd through common TCP sockets.

Various clients are available. The main client lcdproc, which is shipped with the LCDproc distribution, can display things like CPU load, system load, memory usage, uptime, and a lot more.

The LCDproc Server - LCDd

LCDd is one of those well known *NIX daemons. BUT it's not just *one* daemon. It's the one that is supposed to drive your LCD ;)

LCDd can either be run from the command line or automatically by the init scripts shipped with the distribution.

As other daemons, LCDd has to be configured. In this respect a lot has changed since LCDproc 0.4.1. While LCDd retrieved all its configuration settings from the command line in 0.4.1, it now has a configuration file, which is normally /etc/LCDd.conf.

The LCDproc "Main" Client - lcdproc

While LCDd only offer the functionality of displaying text on a display, lcdproc actually retrieves data worth displaying.

lcdproc gets its information from the /proc filesystem.

lcdproc can connect to an LCDproc server either on the local system or on a remote system as long as it is reachable. It extracts the same statistics regardless of where it sends this information. The statistics it gathers include CPU utilization, memory utilization, disk utilization, network utilization, system uptime, time, and date, and so on. It displays this information in assorted ways, and can be tailored to taste.

Other LCDproc Clients

As it is rather simple to write an LCDproc client, you can find various clients on the Internet.

Unfortunately we cannot provide a list of LCDproc clients here. So, take a look at the Clients page on LCDproc's web site or have fun searching Google or freshmeat. Simply use lcdproc as the search pattern.

Chapter 2. How to Obtain LCDproc

Versioning

At the time of writing there were two majors versions of LCDproc floating around on the Internet.

LCDproc 0.5.2

LCDproc 0.5.2 is the current stable version of LCDproc. This is the version recommended to use.

LCDproc 0.5.1

LCDproc 0.5.1 is the old stable version of LCDproc. It was the second stable version of LCDproc after the move to the 0.5 API. It now has been superseeded with LCDproc 0.5.2.

Download Yesterday's CVS Version of LCDproc as a Tarball

There are nightly distributions of the CVS branches of LCDproc. You can download them from http://lcdproc.sourceforge.net/nightly/

To extract the files run either

$ tar xvfz lcdproc-CVS-*.tar.gz

or

$ bunzip2 -c lcdproc-CVS-*.tar.bz2 | tar xv

Download The Latest Version of LCDproc from CVS

Of course you can download the latest stuff from CVS via anonymous login.

Login to CVS:

$ cvs -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc login

(Hit enter when prompted for a password.)

Get the files from CVS:

$ cvs -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc checkout -r stable-0-5-x lcdproc

Once you've done that and want to update the downloaded files to the latest stuff you can use the "update" command of CVS (Make sure to be in the lcdproc directory.):

$ cvs update -d

Now that you have downloaded the files you can prepare them for compiling, but first you should (you don't have to) copy them to another place on your machine:

apt-get

Debian GNU/Linux users can get the Debian package of LCDproc, which is in the unstable and testing distributions.

Provided apt-get is configured properly, you should be able to install the package running:

$ su
Password: top secret
# apt-get install lcdproc

Chapter 3. Installation

Build LCDproc

Now that you have downloaded the LCDproc distribution you can start building it.

Note

If you have installed the Debian package with apt-get (or another Debian package management tool), you can skip this this chapter.

If you're building this version from CVS, you'll need autoconf, automake, aclocal and autoheader installed.

If you have autoconf and friends, run:

$ sh autogen.sh

This produces the configure script and supporting files. It has already been run if you are using the tarball distribution.

Once the above command has run, the rest is pretty standard:

$ ./configure --help

Read about the options, figure out what to use.

$ ./configure --prefix=/usr/local --enable-drivers=curses,CFontz

Be sure to replace /usr/local with the prefixdir you want (e.g. /usr for RedHat) and curses,CFontz with the comma-separated list of drivers you want to have compiled.

$ make

Congratulations: You have just compiled your version of LCDproc ;)

Install LCDproc Directly From The Sources

If you want to install LCDproc more or less permanently you can run:

$ su
Password: top secret
# make install

Note

make install is absolutely OPTIONAL You can also run LCDproc directly from the source directory. See below for details.

Generate And Install Packages of LCDproc

As an alternative (which is actually better ;) to installing directly from the sources you can generate packages using the packaging tool EPM.

First of all you may need to download EPM from http://www.easysw.com/epm/ and install it according to the instructions that are included in its source distribution.

Debian users (who do not want to download the official lcdproc debs via apt-get) can of course use Debian's epm package:

# apt-get install epm

Note

There are of course other and maybe better ways to generate packages for your system. The reason for us to choose EPM was that it provide the developers with a tool that makes it possible to write one list file for all platforms defining what the resulting package is meant to look like. This way we do not have to learn all the package managing tools of the different platforms that are supported by LCDproc.

To generate an LCDproc package follow these instructions:

Tip

It is of certain importance that you have run ./configure with the correct pathname settings for your system. Otherwise the resulting package will install the files in the wrong directories.

$ epm -v -f native LCDproc

Note

Generating an RPM package as a non-root user will fail, RPM wants to generate the files from the tree under /usr/src/RPM, which you do not have write access to as a non-root user. If you want to generate the package as a non-root user anyway, you may want to follow these instructions.

A workaround for the described problem is creating a file named ~/.rpmmacros which contains:


%_topdir ~/rpm

Important

~/rpm must contain the same tree usually found under /usr/src/RPM

Unfortunately epm does not read ~/.rpmmacros and of course returns warnings. Don't worry! That's OK ;)

In order to actually install the generated package follow the instructions in your system's manual.

Chapter 4. LCDproc Configuration

Configure LCDd

As mentioned in the introduction LCDd, the LCDproc server, has its own configuration file, which is usually /etc/LCDd.conf.

Note

If you have not installed LCDproc from the sources the configuration file might have a different location. You should be able to find it by making your system's package manager list all the files in the LCDproc package.

The format of the /etc/LCDd.conf is INI-file like.

It is divided into sections that start at markers that look like [section]. Comments are all line-based comments, and are lines that start with '#' or ';'.

The server has a 'central' section named [Server]. Further each driver has a section which defines how the driver acts. Those sections start with [drivername].

The drivers are activated by specifiying them in a Driver= line in the server section, like:

Example 4.1. LCDd.conf: Specify which driver to use

[Server]
Driver=curses

This tells LCDd to use the curses driver. The first driver specified here that is capable of output functionality will be used as the output driver. All other drivers can only serve as input drivers. The default driver to use is curses.

Warning

If LCDd is started automatically by an init-script using the curses driver, it will lock /dev/tty1! So, be careful about what you are doing here.

The drivers read their own options from the config file. For this purpose they use the config sections that are named like the driver.

LCDd -d driver

Note

If -d is specified on the command line, the Driver= options in the configuration file are ignored.

LCDd.conf: The [Server] Section

The [Server] section of the LCDd.conf contains the settings for the LCDproc server LCDd.

DriverPath= DRIVERPATH

Tells the server where to look for the driver files. See above for details. If not specified DRIVERPATH defaults to the empty string, resulting in drivers being searched in the directory LCDd is started in.

Driver= DRIVERNAME

Tells the server which driver(s) to use. See above for details. If not specified DRIVERNAME defaults to curses, a driver that is supposed to work on any half-way decent UNIX console.

Bind= ADDRESS

Tells the server to bind to the given local IP address and listen for incoming client connections. The default value for ADDRESS is 127.0.0.1, which is actually the safest variant.

Port= PORTNUMBER

Tells the server to listen to this specified port. If not specified PORTNUMBER defaults to 13666.

ReportLevel= LEVEL

Sets the reporting level. Legal values for LEVEL range from 0 (only critical errors) to 5 (everything including debugging information). If not specified it defaults to 2 (warnings and errors only).

ReportToSyslog= { no | yes }

Should we report to syslog instead of stderr? Default value is no.

WaitTime= SECONDS

Sets the default time in seconds to display a screen. If not specified the default value for SECONDS is 4.

User= USER

User to run as. When started as root LCDd will drop its privileges, and run as this user instead. Defaults to nobody.

ServerScreen= { yes | no }

Include the server screen, that shows the number of active clients and screens, into the screen rotation scheme when other screens exist. Defaults to yes.

Foreground= { no | yes }

The server will stay in the foreground if set to true. Otherwise the server will fork to background and report to syslog. Defaults to no.

GoodBye= GOODBYEMSG

Define the message left on the screen when LCDd exits. If not given, it defaults to the builtin Thanks for using LCDproc!. If it is given, each GoodBye= directive represents a line on the display.

The GOODBYEMSGs will be printed on the display one after each other starting on the beginning of each line. So, the definition of

        GoodBye="       So Long,"
        GoodBye="         and"
        GoodBye="Thanks for All the Fish!"
      

prints the well known dolphin's message on the first 3 lines of the display (which obviously needs to be 24 columns wide to show the full last line).

To simply disable the default builtin message, and leave the screen blank a single GoodBye="" suffices.

The …Key= lines define what the server does with keypresses that don't go to any client.

ToggleRotateKey= KEY

Defaults to Enter.

PrevScreenKey= KEY

Defaults to Left.

NextScreenKey= KEY

Defaults to Right.

ScrollUpKey= KEY

Defaults to Up.

ScrollDownKey= KEY

Defaults to Down.

LCDd.conf: The [Menu] Section

The [Menu] section enables you to set some general ("global") options related to the way LCDd handles input "events".

The menu is an LCDproc client built into LCDd. You can configure what keys the menu should use. Note that the MenuKey will be reserved exclusively, while the others work in shared mode.

MenuKey= KEY

The key that switches into menu mode (=open the main menu). In menu mode it cancels any operation. Cancelling the main menu means returning to the regular display mode. It defaults to Menu.

EnterKey= KEY

The key to enter a sub menu and/or, to select an entry. It defaults to Enter.

UpKey= KEY

The key to move to the previous menu item. If the LeftKey is not set, it is also used to move left in input fields. It default to Up.

DownKey= KEY

The key to move to the next menu item. If the RightKey is not set, it is also used to move right in input fields. It default to Down.

LeftKey= KEY

If defined, this optional key is used to to move left in input fields and to select submenu entries. It is not set by default, but if you have more than 4 keys, a natural candidate is Left.

RightKey= KEY

If defined, this optional key is used to to move right in input fields. It is not set by default, but if you have more than 4 keys, a natural candidate is Right.

LCDd.conf: The Driver Section

As mentioned earlier, each driver has its own section in the LCDd.conf.

Although the settings are more or less self-explanatory, they are explained in the next chapter in the section for each driver. So, read through the section of your driver and change everything neccessary.

The LCDproc Init Scripts

The LCDproc distribution contains init scripts for LSB 3.1 (Linux Standard Base 3.1) conforming GNU/Linux distributions. In addition to those it contains init scripts for older RedHat- and Debian-based distributions that do not adhere to LSB 3.1. You can find iall of them in the scripts/ directory of the LCDproc sources.

Note

The init scripts are generated using autoconf. So, again it is important that you have run ./configure with the correct options for your system.

Refer to your system's manual on how to install the scripts.

init-LCDd

The file scripts/init-LCDd.* is the init script for the LCDproc server LCDd. It does not require modification.

init-lcdproc

The file scripts/init-lcdproc.* is the init script for the LCDproc "main" client lcdproc.

Note

You can retrieve a listing of all options of lcdproc running lcdproc --help.

Chapter 5. LCDproc Drivers

Table of Contents

The bayrad Driver
Features
Configuration in LCDd.conf
The CFontz Driver
Configuration in LCDd.conf
The CFontz633 Driver
Configuration in LCDd.conf
The CFontzPacket Driver
Configuration in LCDd.conf
The curses Driver
Configuration in LCDd.conf
The CwLnx Driver
Features
Configuration in LCDd.conf
The ea65 driver
EA65 front panel VFD
Configuration in LCDd.conf
The Eyebox One Driver (EyeboxOne)
Eyebox One LCD Module
Eyebox One Driver and lcdproc client
Copyright
Configuration in LCDd.conf
The G15 Driver
Features
Configuration in LCDd.conf
The glcdlib Driver
Connections
Configuration in LCDd.conf
The glk Driver
Configuration in LCDd.conf
The HD44780 Driver
Connections
Compiling
Configuration in LCDd.conf
Miscellania
The icp_a106 Driver
Configuration in LCDd.conf
The imon Driver
General
Configuration in LCDd.conf
The IOWarrior Driver
Configuration in LCDd.conf
The irman Driver
Configuration in LCDd.conf
The Joystick Input Driver
Configuration in LCDd.conf
The lb216 Driver
Connections
Configuration in LCDd.conf
The lcdm001 Driver
Configuration in LCDd.conf
The lcterm Driver
Configuration in LCDd.conf
The lirc Driver
Checking Your LIRC Setup
Build LCDd with the lirc Driver
Configure LCDd to Use the lirc Driver
Modify Your ~/.lircrc
The MD8800 Driver
Features
Configuration in LCDd.conf
The ms6931 Driver
Configuration in LCDd.conf
The mtc_s16209x Driver
Configuration in LCDd.conf
The MtxOrb Driver
Matrix Orbital LCD Modules
Matrix Orbital Hardware Installation
Configuration in LCDd.conf
The NoritakeVFD Driver
Configuration in LCDd.conf
The Mini-Box USB LCD (picoLCD 20x2) Driver (picolcd)
Setting up the picoLCD
Configuration in LCDd.conf
picolcd driver status
Copyright
The pyramid Driver
Features
Requirements
LED output
Configuration in LCDd.conf
The sed1330 Driver
Connections
Configuration in LCDd.conf
The sed1520 Driver
Configuration in LCDd.conf
The serialPOS Driver
Connecting The Display
Configuration in LCDd.conf
The serialVFD Driver
Connecting The Display
Configuration in LCDd.conf
The sli Driver
Configuration in LCDd.conf
The stv5730 Driver
Configuration in LCDd.conf
The svga Driver
Configuration in LCDd.conf
The Toshiba T6963 Driver
Connections
Compiling
Configuration in LCDd.conf
Running
The text Driver
Configuration in LCDd.conf
The tyan Driver
Features
Configuration in LCDd.conf
The ula200 Driver
Configuration in LCDd.conf
The xosd Driver
Configuration in LCDd.conf
Parallel Port Troubleshooting
Check The Wiring
Power Source Unregulated / Noisy
Ground Lift
Latchup
Contrast
Parallel Port Voltage
Enable Signal Rise Time
EMI
One or Two Black Lines
Software Too Fast
LED Backlight
HD44780 Compatible
Miscellania

This chapter contains the documentation of each LCDproc driver, which may include the installation process of the hardware as well as the configuration of LCDd.

The bayrad Driver

This section talks about using LCDproc with the BayRAD LCD modules by EMAC, Inc.

Features

The BayRAD LCD modules are designed to fit into 5,25" drive bays. They contain an LCD display that is 20 characters wide and 2 lines high surrounded by 4 buttons labeled Menu, Select, +/Yes, and -/No.

BayRAD modules are connected to the PC using a serial RS232 connection getting operating power using the standard floppy drive power connector.

For more information see the BayRAD home page

Configuration in LCDd.conf

[bayrad]

Device= DEVICE

Select the serial output device to use. If not given, default is /dev/lcd.

Speed= { 1200 | 2400 | 9600 | 19200 }

Set the the baud rate to use when communicating with the LCD. 9600 is the default, if not specified.

The CFontz Driver

This section talks about using LCDproc with LCD displays that use the CFontz chipset.

Configuration in LCDd.conf

[CFontz]

Device= DEVICE

Select the serial output device to use. If not given, default is /dev/lcd.

Size= WIDTH x HEIGHT

Set the LCD's dimensions in terms of characters per line and lines. If not given, it defaults to 20x4.

Contrast= CONTRAST

Set the initial contrast. Legal values for CONTRAST are in the range between 0 and 1000. If not given, it defaults to 140.

Brightness= BRIGHTNESS

Set the initial brightness. Legal values for BRIGHTNESS range from 0 to 1000. If not given, it defaults to 1000.

OffBrightness= BRIGHTNESS

Set the initial off-brightness. This value is used when the display is normally switched off in case LCDd is inactive. Legal values BRIGHTNESS are in the range from 0 to 1000. The default is 0.

Speed= { 1200 | 2400 | 9600 | 19200 | 115200 }

Set the the baud rate to use when communicating with the LCD. It defaults to 9600 if not specified.

NewFirmware= { yes | no }

Set the firmware version (New means >= 2.0) [default: no; legal: yes, no]

Reboot= { yes | no }

Reinitialize the LCD's BIOS [default: no; legal: yes, no] normally you shouldn't need this

The CFontz633 Driver

This section talks about using LCDproc with LCD displays that use the CFontz633 chipset.

Configuration in LCDd.conf

[CFontz633]

Device= DEVICE

Select the output device to use [default: /dev/lcd] may be serial device or USB device in serial emulation mode.

Size= WIDTH x HEIGHT

Select the LCD type (size) [default: 16x2]

Contrast= CONTRAST

Set the initial contrast. Legal values for CONTRAST are 0 - 1000. If not specified, it defaults to 560.

Brightness= BRIGHTNESS

Set the initial brightness [default: 1000; legal: 0 - 1000]

OffBrightness= BRIGHTNESS

Set the initial off-brightness [default: 0; legal: 0 - 1000] This value is used when the display is normally switched off in case LCDd is inactive

Speed= { 1200 | 2400 | 9600 | 19200 | 115200 }

Set the the baud rate for communication with the LCD. If not specified, the default is 19200.

NewFirmware= { yes | no }

Set the firmware version (New means >= 2.0) [default: no; legal: yes, no] Currently this flag is not in use, there is no such thing as NewFirmware. ;=)

Reboot= { yes | no }

Reinitialize the LCD's BIOS [default: no; legal: yes, no] I want to reboot the LCD to make sure we start from a known state

The CFontzPacket Driver

This section talks about using LCDproc with LCD displays that use the CFontzPacket chipset.

Configuration in LCDd.conf

[CFontzPacket]

Model= { 631 | 633 | 635 }

Select the LCD model [default: 633; legal: 631, 633, 635]

Device= DEVICE

Select the output device to use [default: /dev/lcd] May be a serial device or a USB device in serial emulation mode.

Size= WIDTH x HEIGHT

Select the LCD size [default: depending on model: 635: 20x4, 631: 20x2, 633: 16x2]

Contrast= CONTRAST

Set the initial contrast. Legal values for CONTRAST are 0 - 1000. If not specified, it defaults to 560.

Brightness= BRIGHTNESS

Set the initial brightness [default: 1000; legal: 0 - 1000]

OffBrightness= BRIGHTNESS

Set the initial off-brightness [default: 0; legal: 0 - 1000] This value is used when the display is normally switched off in case LCDd is inactive

Speed= { 1200 | 2400 | 9600 | 19200 | 115200 }

Set the the baud rate for communication with the LCD. If not specified, the default depends on the model: it is 9600 for the CFA633 and 115200 for the CFA631 and CFA635.

NewFirmware= { yes | no }

Set the firmware version (New means >= 2.0) [default: no; legal: yes, no] Currently this flag is not in use, there is no such thing as NewFirmware. ;=)

Reboot= { yes | no }

Reinitialize the LCD's BIOS [default: no; legal: yes, no] I want to reboot the LCD to make sure we start from a known state

The curses Driver

This section talks about using LCDproc with LCD displays that use the curses chipset.

Configuration in LCDd.conf

[curses]

Foreground= COLOUR

Set the foreground color. If not given, it defaults to blue.

Legal values for COLOUR are red, black, green, yellow, blue, magenta, cyan and white.

Background= COLOUR

Set the background color. The default is cyan.

The legal values for COLOUR are the same as for the Foreground setting.

Backlight= COLOUR

Set the background color that is to be used when backlight is set on. backlight color. If not given, the default is red.

The legal values for COLOUR are the same as for the Foreground setting.

Size= WIDTH x HEIGHT

display size [default: 20x4]

TopLeftx= X-OFFSET , TopLefty= Y-OFFSET

What position (X,Y) to start the left top corner at. Default: (7,7)

UseACS= { yes | no }

Tell whether to use ACS (alternative character set) symbols for icons and bars instead of simple ASCII characters.

The CwLnx Driver

This section talks about using LCDproc with the serial / USB LCDs CW12232 and CW1602 by CwLinux.

Features

The CwLinux CW12232 LCDs are graphical LCDs with 122 x 32 dots that also have a text mode with 20 x 4 characters, the CW1602 LCDs are character LCDs that are 16 characters wide and 2 lines high.

The modules can be ordered bare or as part of a kit mounted on brackets that fit in half-height 5.25" drive bays. The mounting brackets optionally feature a 6 button keypad that makes use of the keypad connector on the display modules.

The kits allow to programmatically switch on/off their backlight. Newer revisions of the kits also have programmable brighness as well as 4 general purpose IO ports.

The CW12232 and CW1608 come in 2 variants that differ how they communicate with the host: The serial modules are connected to the PC using a serial RS232 connection getting operating power using the standard floppy drive power connector, while the USB modules only require an USB connection.

For more information see the CwLinux web site

Configuration in LCDd.conf

[CwLnx]

Model= { 12232 | 1602 }

Select the LCD model [default: 12232; legal: 12232, 1602]

Device= DEVICE

Select the output device to use [default: /dev/lcd] May be serial device or USB device in serial emulation mode.

Size= WIDTH x HEIGHT

Select the LCD size [default: depending on model: 12232: 20x4, 1602: 16x2]

Speed= { 9600 | 19200 }

Set the the baud rate for communication with the LCD. If not given, the default is 19200.

Reboot= { yes | no }

Reinitialize the LCD's BIOS [default: no; legal: yes, no] normally you shouldn't need this

Keypad= { yes | no }

Tells if you have a keypad connected. Keypad layout is currently not configureable from the config file.

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

If you have a non standard keypad you can associate any keystrings to keys. There are 6 input key in the CwLnx hardware that generate characters from 'A' to 'F'. Legal values for KEY are Up, Down, Left, Right, Enter and Escape.

The following it the built-in default mapping hardcoded in the driver.

KeyMap_AUp
KeyMap_BDown
KeyMap_CLeft
KeyMap_DRight
KeyMap_EEnter
KeyMap_FEscape

You may leave it unchanged if you have a standard keypad. You can change it if you want to report other keystrings or have a non standard keypad.

keypad_test_mode= { yes | no }

keypad_test_mode permit to test keypad assignment Default value is no

The ea65 driver

This section describes the ea65 driver which works with the front panel VFD display on the AOpen XC Cube-AV EA65 media barebone.

EA65 front panel VFD

The AOpen XC Cube-AV is a barebone designed for using as a media center. It comes with a front panel display which is capable of displaying one line of 9 characters.

The display is internally connected to the serial port (/dev/ttyS1) with a fixed rate of 9600 baud.

The display uses 13 segments per character. That's why the driver provides no custom characters like the ones for dot matrix displays do.

The front panel furthermore has 9 keys which are illuminated by blue LEDs. The LEDs can be controlled with the backlight functions. The keys are not supported by this driver. The red LED (RECORD) can be controlled with the output command of LCDd.

Configuration in LCDd.conf

[ea65]

Brightness= BRIGHTNESS

Set the brightness for the front LEDs if backlight is switched on. Legal values for BRIGHTNESS are in the range between 0 and 1000. Values under 300 set the LEDs off. Values between 300 and 700 turn on the LEDs with half brightness. Values above 700 turn on the LEDs with full brightness. If not given, it defaults to 500.

OffBrightness= OFFBRIGHTNESS

Set the brightness for the front LEDs if backlight is switched off. Legal values for OFFBRIGHTNESS are in the range between 0 and 1000. Values under 300 set the LEDs off. Values between 300 and 700 turn on the LEDs with half brightness. Values above 700 turn on the LEDs with full brightness. If not given, it defaults to 0.

The Eyebox One Driver (EyeboxOne)

This section describes the Eyebox One.

Eyebox One LCD Module

Eyebox One is a small rackmounted server marketed by Rightvision (http://www.alcateleyebox.rightvision.com/). This server has an LCD module, a keypad, two graphbars and some leds.

The LCD is a 20x4 alphanumeric module connected via standard DB-9 cabling and connector.

I couldn't find any documentation about it. All I know has been obtained with some reverse engineering. It seems that it can run only at 19.200 baud. Sending ASCII to the module will make it simply display that text at its current cursor position. The module has a built-in BIOS that recognizes commands (sent by transmitting a single-byte "marker" signifying that a command is on the way, followed by the single-byte command character itself along with any parameters, if needed) allowing the programmer to clear the screen, position the cursor anywhere, hide/show the cursor, on/off the backlight, and so on.

This module is fast. If updating less than the whole screen, the LCD can update faster than can be seen by the human eye. This, of course, more than meets LCDproc's needs.

Eyebox One Driver and lcdproc client

You can use the two Eyebox One graphbars, one as a free CPU meter, and one as a free RAM meter with lcdproc client (see eyebox.c in lcdproc client sources). In order to use it, you must execute ./configure with a special parameter: CPPFLAGS=-DLCDPROC_EYEBOXONE ./configure --enable-drivers=EyeboxOne This is only a BETA version modification, take it as a demo...

Copyright

This section was originally part of the mtxorb.docbook file by Rene Wagner

This section has been modified by Cédric TESSIER (http://www.nezetic.info)

Configuration in LCDd.conf

[EyeboxOne]

Device= DEVICE

Select the output device to use [default: /dev/ttyS1]

Size= WIDTH x HEIGHT

Set the display size [default: 20x4]

Backlight= { yes | no }

Switch on the backlight? [default: yes; legal: yes, no]

Note

If you choose yes, you can switch on/off the backlight in real time using the LCDproc server menu with the keypad.

Cursor= { yes | no }

Switch on the cursor? [default: no; legal: yes, no]

Speed= { 1200 | 2400 | 9600 | 19200 }

Set the the baud rate to use when communicating with the LCD. If not specified, it defaults to 19200.

LeftKey= D , RightKey= C , UpKey= A , DownKey= B , EscapeKey= P , EnterKey=

The following table translate from EyeboxOne Key to Logical Key. EyeboxOne Enter Key is a \r character, so it's hardcoded in the driver.

keypad_test_mode= { yes | no }

You can find out which key of your display sends which character by setting keypad_test_mode to yes and running LCDd. LCDd will output all characters it receives. Afterwards you can modify the settings above and set keypad_set_mode to no again.

The G15 Driver

This section talks about using LCDproc with LCD displays on Logitech G15 gaming keyboards.

Features

This driver uses g15daemon's virtual screen capabilities to enable multiple LCDd instances to display on the LCD of the Logitech G15 gaming keyboard. Text and other rendering services are provided by libg15render from the g15tools project. Input is provided by g15daemon, enabling use of the L1-L5 and G1 keys. The required libraries are available from the g15daemon and g15tools projects at sourceforge.net.

Configuration in LCDd.conf

Currently there aren't really any configuration options to be set. The width and height are hardcoded based on the font currently used. In the future, now that libg15render has FreeType2 support, there may be options to adjust the font used and the display size.

The glcdlib Driver

This section talks about using LCDproc with LCD displays that use the glcdlib chipset.

Connections

The so-called "meta-driver" glcdlib extends LCDproc's supported drivers by all the drivers supported by graphlcd-base, which you can get from http://graphlcd.berlios.de.

In order to be able to use it, you have to get and install the glcdprocdriver from http://www.muresan.de/graphlcd/lcdproc before configuring the LCDproc build process --enable-drivers=glcdlib.

Author Lucian Muresan

Configuration in LCDd.conf

[glcdlib]

## mandatory:
Driver= GRAPHLCD-DRIVER

Specify which graphical display supported by graphlcd-base to use. Legal values for GRAPHLCD-DRIVER are specified in graphlcd's configuration file /etc/graphlcd.conf. For graphlcd 0.13 they comprise avrctl, framebuffer, gu140x32f, gu256x64-372, gu256x64C-3xx0, hd61830, image, ks0108, noritake800, sed1330, sed1520, serdisp, simlcd, and t6963c. If not specified it defaluts to image.

UseFT2= { yes | no }

Tell whether to use FreeType2 or not. If set to no use graphlcd's bitmap fonts, which is only one size/font file. If set to to the default value yes use the fonts that FreeType2 provides.

Note

Setting it to yes requires Freetype2 support in libglcdprocdriver and its dependants.

TextResolution= WIDTH x HEIGHT

Give text resolution in fixed width characters. If it won't fit according to the available physical pixel resolution and the minimum available font face size in pixels, 'DebugBorder' will automatically be turned on. If not specified, it defaults to 16x4.

FontFile= FILENAME

Set path to font file to use, e.g. /usr/share/fonts/corefonts/courbd.ttf.

The following parameters only apply if UseFT2=yes:
CharEncoding= CHARSET

Specify character encoding to use, e.g. iso8859-2. If not given, use the default ISO8859-1.

MinFontFaceSize= COLUMNS x ROWS

minumum size in pixels in which fonts should be rendered

Brightness= BRIGHTNESS

Brightness (in %) if applicable Legal values are 0 - 100. If not specified, the default is 50.

Contrast= CONTRAST

Set the contrast (in %) if applicable. Legal values are 0 - 100, with 50 being the default when not specified.

Backlight= { yes | no }

Backlight if applicable

UpsideDown= { yes | no }

flip image upside down

Invert= { yes | no }

invert light/dark pixels

ShowDebugFrame= { yes | no }

turns on/off 1 pixel thick debugging border whithin the usable text area, for setting up TextResolution and MinFontFaceSize (if using FT2);

ShowBigBorder= { yes | no }

border around the unused area

ShowThinBorder= { yes | no }

border around the unused area

PixelShiftX=0 , PixelShiftY=2

The glk Driver

This section talks about using LCDproc with LCD displays that use the Matrix Orbital GLK chipset.

Configuration in LCDd.conf

[glk]

Device= DEVICE

select the serial device to use [default: /dev/lcd]

Contrast= CONTRAST

Set the initial contrast. Legal values for CONTRAST are 0 - 1000. If not given, it defaults to 560.

Speed= { 9600 | 19200 | 38400 }

Set the the baud rate for communication with the LCD. The default is 19200.

The HD44780 Driver

There are several ways of wiring up the HD44780 devices. Your choice will probably be governed largely by your ability to wire up each one and/or a desire to use the device with other programs.

The LCDproc HD44780 driver supports the following connections on a parallel port:

  • 4bit

  • 8bit (winamp style)

  • extended 8bit (LCD + LED bargraph)

  • serial LPT

It also supports the following connections:

  • A PIC-an-LCD or LCD serializer connected to a serial port

  • A I2C port expander connected to an I2C port

The driver also lets you use multiple displays as a single virtual display. For example, a 4, 2 and 1 line display can be used to form a 7 line display. The number of displays is limited by the individual HD44780 driver.

Connections

Common connections for all connectiontypes

No matter what connectiontype you choose, you will always need some connections. They are explaned here.

Power

All variants use the same method of obtaining power. i.e., for each LCD:

Table 5.1. HD44780: Power Connections

LCDpinsignal
1GND(connect to any of pins 18 - 25 of you parallel port)
2+5V 
3Vadj(contrast)

Warning

Always double check your power connection, your display will probably not survive a reversely connected supply !

There are several ways to get 5V:

  • Connect to a 5V line intented for disk drives (the red wire is 5V, black is GND).

  • Get it from a joystick port (pin 1 and 9 are 5V, 4, 5 and 12 are GND). It seems that some soundcards can use these lines for communication, so if you want to use this first check wether it really gives a 'clean' 5V.

  • If you don't have a backlight, you can sometimes get the needed mA's from the LPT port itself. Connect a few diodes from the data pins to a capacitor and you have the 5V. If it's strong enough is another question...

  • Get it from the keyboard connector. I do not recommend to use this with a backlight, as the keyboard connector is often protected with a fuse of 100mA or 200mA.

Figure 5.1. HD44780: Connecting the contrast adjusting pin (Vadj.)



     (variable resistor)
        .------.
 Vcc ---|  10k |--- GND
        `---^--'
           /|\
            |
          Vadj.



Keypad

You can connect a keypad with most connection types. The maximum supported number of keys differs per type. There are several ways to connect the keys to the input pins.

Direct Keys

If you connect a key like sketched below, then you can only connect one key per input pin. It is a simple solution if you need only few keys.

Figure 5.2. HD44780: Direct Keys



      O 5V
      |
      |
      -
     | | 10k
     | |
      -
      |
      +-----------o input  (X)
      |
      |
      o
       \
      o
      |
      |
     === GND



By default, the following keystrokes are generated by the different keys:

Table 5.2. HD44780: Direct Key Mapping

X0A
X1B
X2C
X3D
X4E

Matrix Keys

Using a matrix, we can connect much more keys. To simplify the drawing here, we replace all switches with an @ symbol:

Figure 5.3. HD44780: Single Matrix Key



             X line
                |
                |
  Y line ---+---------
            |   |                    |
            o   |               =  --@--
             \  |                    |
            o   |
            |   |
            +---+
                |
                |



We connect the matrix of keys like this:

Figure 5.4. HD44780: Complete Key Matrix



Y0 o---|<---@--@--@
            |  |  |
Y1 o---|<---@--@--@
            |  |  |
Y2 o---|<---@--@--@
            |  |  |
Y3 o---|<---@--@--@            O 5V
            |  |  |            |
    diodes  |  |  |     ___    |
    1N4148  +----------|___|---+
            |  |  |     ___    |
            |  +-------|___|---+
            |  |  |     ___    |
            |  |  +----|___|---+     resistors 22k
            |  |  |
            o  o  o
            X0 X1 X2



As you can see, you need 1 resistor per X line, and 1 diode per Y line. Lcdproc will presume that you have a keypad with a layout like a telephone connected, with X and Y lines connected as show. To be more precise, it assumes this:

Table 5.3. HD44780: Matrix Keypad Layout

 X0X1X2X3X4
Y0123AE
Y1456BF
Y2789CG
Y3*0#DH

If you only need 10 keys, leave the rest away. However, the lcdproc menu is controlled by the keystrokes A to D. You should modify and recompile the driver to get an other keypad layout.

You can buy arrays of keys that are connected like this in the electronics shop. They usually call it a matrix keypad. To hook it to lcdproc, you would only need to add the resistors and diodes.

If you want to use just one return line, for example with the serialLpt wiring, it looks (completely drawn) like this:

Figure 5.5. HD44780: One Return Line



                  O 5V
                  |
                 .-.
                 | | 4k7 or 22k
     diodes      | |
     1N4148      '-'
            ___   |
Y0 o---|<---o o---+
            ___   |
Y1 o---|<---o o---+
            ___   |
Y2 o---|<---o o---+
            ___   |
Y3 o---|<---o o---+----o return line



Tip

If the driver generates keypresses without that you actually press a key, it might be that the unconnected input lines are picking up electromagnetic waves from the air. In that case connect the unconnected input lines (pin 10, 11, 12, 13 and 15 of the LPT) to VCC = 5V.

Backlight

A small extension allows you to switch the backlight of the display on and off. At the moment only the 4bit and winamp connection types support this. The extension uses one output pin, you cannot use that pin for other functions anymore. The wiring looks like this:

Figure 5.6. HD44780: Backlight Wiring



                                             O 5V
                                      ___    |
                                 +---|___|---+
LPT Sub-D connector              |   4k7     |
                                 |           |e
                          ___    |       b |/
     BL pin o------------|___|---+---------|
                          1k               |\
                                       BC327 |c
                                             |        LCD connector
                                             |
                                             +--------o 15 backlight

                                             +--------o 16 GND backlight
                                             |
                                            === GND

Note: 4k7 means 4,7 kOhm.
The BC327 transistor has the following connections:

     _____
    |     |
    |BC327|
    |_____|
     | | |
     | | |
     | | |
     c b e



Caution

Sometimes the backlight connections are not on the 'main' connector, but on the side. If that is the case, there is usually NO RESISTOR present to limit the current through the LEDs. Therefor you should then add a resistor after the transistor of about 10 ohm (see display documentation).

Tip

If you want the backlight to light a bit while it's switched 'off', you can add a resistor bypassing the transistor from e to c, with a value of, say 47ohm or 22ohm. (My 4x20 has an internal resistor of 6ohm, so with 47 ohm extra it lights at only 1/9th. I like this. Joris.)

4bit

This is originally based on "lcdtext" (by Matthias Prinke).

Table 5.4. HD44780: 4bit Pinouts (1)

printer portLCD
namepinnamepin
D02D411
D13D512
D24D6(13)
D35D714
D46RS4
D57RW5 (LCD3 - 6) (optional - pull all LCD RW low (*) )
D68EN6
D79EN2(LCD2 - 6) (optional)

(*) on the RW line of the display: this line decides whether the display receives data from the LPT port, or whether it sends data to the LPT port. If grounded, it receives. If High or connected to nothing at all, it "send