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
General
Requirements
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 lis Driver
Features
Requirements
Configuration in LCDd.conf
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 MX5000 Driver
Features
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
Connector
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 shuttleVFD Driver
Features
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
General
Requirements
Known problems
Implementation note
Configuration in LCDd.conf
The xosd Driver
Configuration in LCDd.conf
The i2500vfd Driver
Features
Options
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 (VLC)
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: 8bit FTDI
5.13. HD44780: Examples of I2C port expander addresses
5.14. Mapping between LCDproc keys and IrMan commands
5.15. USB Pinout
5.16. Mapping of output bits to LEDs
5.17. ConnectionType classic ordered by LCD pins
5.18. ConnectionType classic ordered by LPT port pins
5.19. serialPOS: Emulation Protocol Status
5.20. serialVFD: Display Status
5.21. T6963 wiring schematic

List of Examples

4.1. LCDd.conf: Specify which driver to use
5.1. HD44780: Configuration for LCD2USB
5.2. HD44780: Configuration for I2C with port expander
5.3. LCDd.conf: Activate the lirc driver
5.4. ~/.lircrc: Specify the associations from buttons to keys for the lirc driver
5.5.
5.6. 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 declarations that look like [section]; i.e. an opening square bracket, followed by the section name, and terminated by a closing square bracket, on a line by itself. Section names are case insensitive.

Parameters are grouped into sections and have the form key=value; i.e. a key, also known as the configuration option, followed by an equality sign and finally the value for the option. All three elements must occur together on one line. The key, which is case insensitive, may be surrounded by spaces, but is must be one word (i.e. a sequence of non-space characters) not containing the equality sign. A similar rule applies to the value: it may be surrounded by spaces, but it must be either one word or enclosed within double quotes ("), which are not considered as part of value. When quoted, the following character sequences are evaluated as in literal C strings:

\aalert (bell) character
\bbackspace
\fformfeed
\nnewline
\rcarriage return
\thorizontal tab
\vvertical tab
\\backslash

All other occurences of \ within quoted values will be ignored.

Comments are all line-based, and may start with '#' or ';'. Everything including and behind the character starting the comment up to the end of the line is ignored.

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 drivers read their own options from the config file. For this purpose they use the config sections that are named like the driver.

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. The first driver specified here that is capable of output functionality will be used as the master output driver, defining display properties and capabilities. All other drivers specified can only serve as input drivers or slave output drivers. If not specified DRIVERNAME defaults to curses, a driver that is supposed to work on any half-way decent UNIX console.

This setting can be overridden on LCDd's command line using the -d DRIVER option. When the command line option is used, only the one driver given there will be loaded, and all drivers specified in the configuration file are ignored.

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, as it allows connections only from the local machine and forbids connections from remote systems.

This setting can be overridden on LCDd's command line using the -a ADDRESS option.

Port = PORTNUMBER

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

This setting can be overridden on LCDd's command line using the -p PORTNUMBER option.

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).

This setting can be overridden on LCDd's command line using the -r LEVEL option.

ReportToSyslog = { no | yes }

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

This setting can be overridden on LCDd's command line using the -s NUMBER option. Passing -s 1 on the command line enables reporting to syslog while -s 0 disables it.

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.

User = USER

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

This setting can be overridden on LCDd's command line using the -u USER option.

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.

This setting can be overridden on LCDd's command line with the -f option that forces foreground mode.

Hello = HELLOMSG

Define the startup message printed on the screen when LCDd starts. This message will stay on the screen until the first client connects. If not given, it defaults to the builtin server screen that tells how many clients are connected and how many screens these clients are using in total. If it is given, each Hello= directive represents a line on the display.

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

        Hello="   Welcome to"
	Hello="    LCDproc!"
      

prints a nice 2-line welcome message to the display.

To simply disable the default builtin server screen on startup, and start with a blank screen a single Hello="" is sufficient.

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.

WaitTime = SECONDS

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

This setting can be overridden on LCDd's command line with the -w SECONDS option.

ServerScreen = { yes | no | blank }

Control the bahaviour of the server screen, that usually shows the number of active clients and screens. When set to its default value yes, the server screen is included into the screen rotation scheme when other screens exist. Whet set to no, the server screen only shows up when no other screen exists. The special value blank is similar to no, but instead of displaying the current number of clients and screens, only a blank screen is displayed.

This setting can be partially overridden on LCDd's command line using the -i NUMBER option. Passing -i 1 on the command line enables server screen rotation, while -i 0 disables it.

Note

Using the command line, it is not possible to set the server screen to blank mode.

Backlight = { off | open | on }

Set the master backlight setting. If set to the default value open, then the backlight setting of the display can be influenced by the clients. When set to off or on, the backlight is set to the appropriate value without the clients being able to change the value.

Heartbeat = { off | open | on }

Set the master heartbeat, the oscillating icon in the top right corner of the display, setting. If set to the default value open, then the heartbeat setting of the display can be influenced by the clients. When set to off or on, the heartbeat is turned on or off without the clients being able to change the value.

TitleSpeed = SPEED

Set the speed how fast over-long title lines shall scroll. Legal values are 0 to 10, where 0 means that no scrolling takes place and 10 stands for fastest scrolling. Default is 10, where no artificial delay is inserted.

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 a special LCDproc client built into LCDd that allows changing server and display settings as well as extending it with entries from client applications.

You can configure what keys the menu should use.

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 has no default, but a natural candidate is Menu.

Note

The MenuKey will be reserved exclusively, while the others work in shared mode and can thus be used by a client application when not in the menu.
EnterKey = KEY

The key to enter a sub menu, to select an entry and/or to confirm the value of an input field. If the RightKey is not defined, it is also used to move right in input fields. In this case the value of the input field is not confirmed, until the right end of the input has been reached. It is not set by default, but a natural candidate is Enter.

UpKey = KEY

The key to move to the previous item in a menu and/or to select the previous value in input fields (e.g. the previous character available for the current position). If the DownKey is not set, moving up before the first entry automatically wraps around to the last entry. It is not set by default, but a natural candidate is Up.

DownKey = KEY

The key to move to the next item in a menu andi/or to select the next value in input fields (e.g. the next character available for the current position). If the UpKey is not set, moving down below the last entry automatically wraps around to the first entry. It has no default, but a natural candidate is 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.

The minimal keys required for the menu work correctly are the MenuKey, the EnterKey and one of UpKey or DownKey. With these 3 keys the menus can be operated. Of course with only 3 keys the navigation gets a bit awkward. So if you have 4 or more keys, you better use them. Especially the LeftKey and RightKey make a big difference in user experience.

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 all 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
General
Requirements
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 lis Driver
Features
Requirements
Configuration in LCDd.conf
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 MX5000 Driver
Features
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
Connector
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 shuttleVFD Driver
Features
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
General
Requirements
Known problems
Implementation note
Configuration in LCDd.conf
The xosd Driver
Configuration in LCDd.conf
The i2500vfd Driver
Features
Options
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

CrystalFontz offers a wide range of character and graphical LCD modules. The CFontzPacket driver supports the modules that communicate with the host computer using a packet-based communications protocol with 16-bit CRC (hence the driver name).

Currently this line of modules comprises the models:

CFA-631
  • 20x2 character LCD with backlight
  • keypad with 4 keys: Up, Down, enter & Escape
  • USB connection for data and power
  • mounting bracket to fit into 3,5" drive bays
CFA-633
  • 16x2 character LCDi with backlight
  • keypad with 6 keys: 4 directions, Enter & Escape
  • serial or USB connection
  • mounting bracket to fit into 5,25" drive bays
CFA-635
  • 20x4 characters LCDi with backlight
  • keypad with 6 keys: 4 directions, Enter & Escape
  • USB connection for data and power
  • four bi-color LEDs to show status information
  • optional mounting bracket to fit into 5,25" drive bays

Configuration in LCDd.conf

[CFontzPacket]

Model = { 631 | 633 | 635 }

Select the LCD model that is connected. Legal values for this option are 631, 633, or 635, with the default being 633.

Device = DEVICE

Select the output device to use. It may be a serial device or a USB device in serial emulation mode. If not given, it defaults to /dev/lcd.

Note

Mac OS X users may need to use one of the /dev/cu devices instead of the /dev/tty ones.

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.

DrawBorder = { yes | no }

Tell whether to draw a border around the screen.

The CwLnx Driver

This section talks about using LCDproc with the serial / USB LCDs CW12232, CW12832 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 CW12832 are graphical displays with 128 x 32 dots and a 21 x 4 character text mode, 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" (CW12232 and CW1608) or 3,5" (CW12832) 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 displays 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 | 12832 | 1602 }

Select the LCD model [default: 12232; legal: 12232, 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, 12832: 21x4] 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 }