Some PC's boxes as the one I bought for my home theater running freevo can be equipped with a display. LCDproc is the Linux package to put some hardware and software to the empty front panel. See:

Hardware issues

LCDproc supports many different display hardware. The following considers a industry standard text display 4 lines with 16 characters. The controller chip is from Hitachi HD44780 or the compatible equivalent from Samsung KS0066. The display can be wired to the parallel port of the PC. Therefore boot your PC and go into the BIOS settings. The parallel port has been introduced to control printers, but due to lack of a parallel interface it got quickly used (and also accepted) for other purposes. Therefore make sure DMA access to the parallel port is disabled, since the display is much too slow for that and might cause some timing issues. Very old parallel port interfaces where restricted to just write to the port (who wants to read from a printer?), new ones can also read back data, so check that this is enabled in the BIOS. Reading back is used for the busy bit (handshake). Using the busy bit, the slow display indicates to the very fast PC that it is taking the character, but does not want to already be bothered with a new character. It therefore slows down the data throughput, but makes sure nothing gets lost. Without handshake the PC would have to wait (some unknown time) until the display is ready for the next character. Not using the handshake signal and setting a fixed wait time for the PC is problematic and easily characters could get lost.

Figure 3.13. Lcds


There is no 5V power on the parallel port, so 5V power can be taken from a drive connector (or USB, 15pin Gameport). For the ground pin 18 to 25 of the parallel port can be used, so the signals taking that as reference and not the noisy ground of the drives. To make the 5V clean, some bypass capacitors between the 5V and the ground of the parallel port are recommended. If the display has high input impedance and long wires would be attached, then the signals could bounce due to EMC noise, resulting in wrong characters in the display. Therefore putting pull down resistors (as 4k7) to all signals coming from the parallel port might be a good idea.

There are different ways to wire this up to the parallel port. Promising are the 4 bit or the 8 bit modes.

The 4 bit mode

The 4 bit mode has 4 wires less to connect but seems more problematic. A 8 bit character will be split into two times 4 bit. By using two sequential accesses, the 8 bit will be moved to or from the display. The handshake bit is set after the two accesses and therefore a handshake between the two 4 bit accesses is missing. This has the danger that half characters could get lost and the display could trip out of synchronization. If out of synchronization it would take the 4 bit from the previous character and 4 bits of the next character to form probably a very ugly result.

The 8 bit mode

Soldering 4 extra wires to have a cleaner and faster interface pays back. Therefore the 8 bit winamp is recommended.

LCDproc software setup

Do a emerge -pv lcdproc to see if the hd44780 driver gets selected, then emerge lcdproc. There is the LCDd daemon that reads its configuration from /etc/LCDd.conf. The daemon is a TCP/IP server, allowing to access the display from everywhere. In the /etc/LCDd.conf, do some settings as select the right driver, connection type and display size:

Driver = hd44780

Do a /etc/init.d/LCDd start to see if it works. If it works you see some nice characters but nothing more, since a LCDd client is missing.

Do a /etc/init.d/lcdproc start to have a LCDproc client running that puts system information to the display. If you are happy add it to the runlevel

rc-update add LCDd default and to have an LCDproc client do rc-update add lcdproc default

Linurs Servernest startpage