Version 0.26 and later now support 20x2 and 24x2 displays.
Some Example Displays.....
What is this thing anyway?
This software and hardware is used on a machine running Linux, to display
system information and other messages on a LCD display. The basic driver
provides the following functions:
Display of the system 'up' time in hours
Display of the number of Processes running on the system
Display of the internal system temperature (in degrees C or F) (optional)
Minimum and Maximum internal system temperature
Display the Time-of-Day
Display of the system load on a bar graph type display. The bar graph is
an auto scale type, showing the load from 0-1 to 0-9.
Display of system load in a text based format
Provides a named pipe (FIFO) for other programs to send messages to the
driver to display on the LCD. This pipe can take the ASCII output from
another process running on the machine and display it every second. If
the process sending data to the FIFO stops for 2 seconds, the display will
revert to the system status display shown below in the photos
Log the reported system temp. (in C of F) to the syslog
See the documentation
for the operating modes, and signals to control them.
Shown on the left above is an average Linux / Intel box with a 2 Line
x 20 Character LCD display. On the right is a close-up of the display unit.
It is mounted in a 3.5 Inch to 5.25 Inch disk drive adapter. This may not
be the best looking solution, but it requires no cutting of the soft plastic
face plate. The display is mounted to the rear of the face plate with No.4
x 0.25 Inch spacers that are held to the back of the face plate with RTV.
Yes, I am lazy.
What do I need to build this thing?
Not much. About $25.00 should do it. All you need are the following:
3.5" to 5.25 Inch floppy disk drive adapter. About $2.50 each.
2x20 Character LCD display Module. About $15.00, or less, from many sources
on the net.
A Dallas Semiconductor DS1620 in the 8 pin DIP package (easy to work with).
About $5.00. (Optional)
Some assorted cables and connectors. The display shown above is connected
to the internal 26 pin parallel port connector located on the motherboard.
You will also need a disk drive power cable or disk power splitter connector
to get power (+5V) to power the display. An 8 pin DIP socket is also required
for the DS1620. Most who want to build this project should be able to find
a lot of the parts in the junk box located under the computer table. You
know, that box of leftover parts from the last 14 upgrades you did in the
What does the prototype look like inside the computer case?
This should give you an idea how the unit was built. I used an old internal
printer cable to connect to the display from a DB-25 connector mounted
to a modified PC card bracket. The bracket was bolted to the Disk Drive
adapter with #4 hardware. The power connector was removed from another
old 3.5" to 5.25" Disk adapter kit. The Temp. Sensor can be seen in the
upper right of the right hand photo. A DB-25 gender changer was used to
connect the connector on the back of the display assembly to another long
internal printer cable. The 26 pin IDC end of this cable connects to the
normal printer cable location on the mother board. I know, it's not going
to win any awards for construction, but it works and was very quick to
build. After all, the whole point of the project was to hack with the driver
Is there more (real) documentation?
is a document that should answer most of your questions.
Where is the source code?
is the source for Version 0.3.6 of the driver. Please don't
laugh too much when looking at the code. I am a hardware designer, not
a real programmer!
Will you fix things that are broken with this driver?
If you find something that does not work in the driver, please let
me know via email. Please try and give a good overview of the problem,
and what version of the source code you are building with. I will do the
best that I can to help out.
Will you add this nifty feature that I came up with?
Let me know what it is that you would like to see for a feature, and
I will see what I can do. If you would like to add something yourself and
have it added into the driver, feel free to go ahead and hack away. Send
me the patches (or another .tar file of the modified source) and I will
have a look. If it is a nice (working) feature, I would be glad to add
it into the code base.
How do I get 5 Volts from inside the machine to power the display?
One of the easy ways to do this is to use a disk power 'Y' cable, used
to connect two hard drives to one power supply connector. There are four
wires going to each of the connectors: (1) Red, (2) Black, (1) Yellow.
Tap into either of the black wires for your Ground connection, and tap
into the Red wire for your +5 Volt connection. The yellow wire is +12 Volts,
and we don't need it for this project.
Are you going to do any development on a graphic version?
Yes. That is something I am planning to do, as soon as I get the time.
It should be a lot more fun to work with than this version!
Are you going to port this from a user space driver to a kernel module?
Yes. That process is underway now. It will show up on this web page
Is there a controller application so that I don't have to send signals
to the display driver from the keyboard?
Yes. There is now a simple Tcl/Tk script that you can use to control
the function of the display. It looks like this:
And you can find lpt_panel Here
Please note that Tony Griggs has e-mailed me
a message (and bug fixes / suggestions, Thanks Tony!) about building lpt_driver
on Red Hat 6.0. Tony says that " compilation issue: for some reason,
<time.h> had to be included before <sched.h>. My system is Red Hat
6.0." I'll go and take a look at the problem on my laptop, which is running
6.0. I normally run 5.2 with updates on the other systems in house. I'll
also check things out on SuSE 6.1 when I get it loaded.
UPDATE 07/09/2002 Joachim Holst, SM7XAB, has been kind enough to
make some updates to drive more sizes of displays - and make lpt_driver
easier to complie on many systems. Be sure to grab the latest source!