| |
I have bought some cheap LCD's from Marlin P
Jones and gotten them to work with LCDProc.
I got a couple of Sharp LM16A21 16x2 (p/n 12536-OP) displays for $3.95 each, and
a Samsung UC20401 20x4 (p/n 9207-OP) display for $15.95.
I modified the 4/8 bit HD44780 driver provided with latest LCDProc
(the 'bleeding edge' sourceforge CVS code...not 0.4-pre9) to reduce CPU usage by
using the nanosleep delay function. See below for details on how
I hooked the LCD to the parallel port. The connections use the somewhat
standard 'winamp' pinout, so if you multiboot your machine and run winamp, you
should be able to use your LCD to view songs & stuff too.
The LCDd server includes the standard drivers as well, so you
can use any of the normal displays (Crystal Fontz, Matrix Oribital, or even text
or curses based displays w/o an LCD!).
Supported LCD controllers |
MFGR
|
P/N
|
Tested
|
Notes:
|
Hitachi
|
HD44780
|
X
|
Tested with Sharp LM16A21 Display (16x2)
|
Samsung
|
KS0066U
|
X
|
Tested with Samsung UC-20401 Display (20x4)
|
Sanyo
|
LC7985NA
|
|
Untested
|
Epson
|
SED1278
|
|
Untested
|
OKI
|
MSM6222
|
|
Untested
|
LCD connections to LPT |
PDF wiring
diagram |
LCD Function
|
LCD Pin
|
LPT Pin
|
LPT Function
|
Ground
|
1
|
18-25
|
Ground
|
VCC (+5V)
|
2
|
-
|
See Notes
|
VO (Contrast voltage)
|
3
|
-
|
See Notes
|
RS
|
4
|
16
|
INIT
|
R/W
|
5
|
18-25
|
Ground
See Notes
|
E
|
6
|
1
|
Strobe
|
DB0
|
7
|
2
|
DB0
|
DB1
|
8
|
3
|
DB1
|
DB2
|
9
|
4
|
DB2
|
DB3
|
10
|
5
|
DB3
|
DB4
|
11
|
6
|
DB4
|
DB5
|
12
|
7
|
DB5
|
DB6
|
13
|
8
|
DB6
|
DB7
|
14
|
9
|
DB7
|
See Notes
|
15
|
-
|
See Notes
|
See Notes
|
16
|
-
|
See Notes
|
Connections for additional LCDs
All connections the same as above except pin 6
|
LCD # |
LCD Function
|
LCD Pin
|
LPT Pin
|
LPT Function
|
2 |
E
|
6
|
17
|
Select
|
3 |
E
|
6
|
14
|
AutoFeed
|
-
LCD Pins 1 and 2 should be connected to a 5V power source. Typically
this is done by hacking a drive power extension or 'Y' cable.
-
The connection for LCD Pin 3 (VO) is somewhat display specific...typically
you need to connect a variable resistor to this pin.
-
LCD Pin 5 (R/W) is tied to ground, forcing the LCD into write mode all the
time. This is to prevent bus contention with the LPT port drivers on
systems with standard parallel ports. Even if you have a bi-directional
LPT port, the LPT and LCD drivers will both be driving from power-on until
LCDProc is run (which could be a LONG TIME!).
-
You can run up to 3 LCD's by tying a different LPT pin to
LCD Pin 6 (E).
-
Some LCD's have pins 15 & 16, which are for the backlight. The
connections to these pins is somewhat display specific, and varies based on
the type of backlight. Displays without backlights typically only have
14 pins.
-
In the wiring harness below, I put a pin-header on the LCD and wired the
LPT port to a header so I can swap LCD's with ease. It would probably
be easier to solder the wires directly to the LCD if you don't plan on
trying out several different displays.
-
If you look carefully at my wiring harness, you will see I didn't connect
all the ground pins from the LPT ribbon cable together. You should
probably do as I say, not as I do, and wire all the ground lines together.
-
If you REALLY look carefully at the wiring harness, you will
note that it uses my old pinout (I'll try to take a new picture soon).
I strongly suggest you use the fairly standard WinAmp connection detailed
above...plus you can do cool things with the LCD from windows using WinAmp!
LCDProc running on my Samsung 20x4 display
A picture of the wiring harness I made
|